【发布时间】:2013-12-29 13:47:33
【问题描述】:
我对 GridView 复选框有疑问。 我为我的 GridView 添加了选择,并且每次我选择一行时,回发后我的选中复选框都会失去其价值。有什么建议吗?
添加了页面加载。
My GirdView:
----------------
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:GridView ID="RulesGridView" runat="server" CellPadding="8" DataSourceID="RulesDataSource" ForeColor="#333333" GridLines="None" OnRowCreated="RulesGridView_RowCreated" OnSelectedIndexChanged="RulesGridView_SelectedIndexChanged" ViewStateMode="Enabled">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:CheckBox ID="chkSelect" runat="server" AutoPostBack="false" OnCheckedChanged="chkSelect_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
C# Code behind:
-------------------
protected void RulesGridView_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes["onmouseover"] = "this.style.cursor='pointer';this.style.textDecoration='underline';";
e.Row.Attributes["onmouseout"] = "this.style.textDecoration='none';";
e.Row.ToolTip = "Click to select row";
e.Row.Attributes["onclick"] = this.Page.ClientScript.GetPostBackClientHyperlink(this.RulesGridView, "Select$" + e.Row.RowIndex);
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{
Session["RuleList"] = new List<Rule>();
Session.Timeout = 180;
//LstRules.Items.Clear();
string folder = ConfigurationManager.AppSettings["MovieCreatorGUIRulesFolder"];
XmlSerializer mySerializer = new XmlSerializer(typeof(List<Rule>));
StreamReader reader = new StreamReader(folder + "\\DB" + txtdbnum.Text + "Rules.xml");
List<Rule> RuleList = (List<Rule>)mySerializer.Deserialize(reader);
reader.Close();
Session["RuleList"] = RuleList;
}
ZoomInCommon.Users.UserInfo userInfo = PublishManager.GetCurrentYoutubeUser(-1);
if (userInfo == null)
txtYoutubeLoginUser.Text = "Not Logged In";
else
txtYoutubeLoginUser.Text = userInfo.DisplayName;
}
【问题讨论】:
标签: c# asp.net gridview checkbox