C# 在网格视图中将复选框选中值(初始值)设置为true会产生奇怪的行为
当我将gridview中的默认复选框设置为C# 在网格视图中将复选框选中值(初始值)设置为true会产生奇怪的行为,c#,asp.net,ajax,gridview,checkbox,C#,Asp.net,Ajax,Gridview,Checkbox,当我将gridview中的默认复选框设置为Checked=true时,我会面临一种奇怪的行为 <asp:UpdatePanel ID="UpdatePanel3" runat="server"> <ContentTemplate> <asp:Panel ID="pnl_lect" runat="server"> <asp:GridView ID="gv_lect" runat="server" A
Checked=true时,我会面临一种奇怪的行为
<asp:UpdatePanel ID="UpdatePanel3" runat="server">
<ContentTemplate>
<asp:Panel ID="pnl_lect" runat="server">
<asp:GridView ID="gv_lect" runat="server" AutoGenerateColumns="False" DataKeyNames="prog_ser,lect_code,lect_type"
CssClass="formTable cr_center" OnDataBound="gv_lect_DataBound" OnRowDataBound="gv_lect_RowDataBound">
<Columns>
<asp:BoundField HeaderText="lect_name" DataField="name" />
<asp:TemplateField HeaderText="1">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_1" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="2">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_2" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="3">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_3" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="4">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_4" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="5">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_5" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="6">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_6" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="7">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_7" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="8">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_8" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="9">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_9" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="10">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_10" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="11">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_11" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="12">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_12" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="13">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_13" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="14">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_14" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="15">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_15" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="16">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_16" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="17">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_17" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="18">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_18" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="19">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_19" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="20">
<ItemTemplate>
<asp:CheckBox ID="CheckBox_20" runat="server" Checked="false" AutoPostBack="true"
OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
protectedvoid CheckBox1\u CheckedChanged(对象发送方,事件参数e)
{
bool res=真;
尝试
{
复选框chkbox=(复选框)发送方;
GridViewRow r=(GridViewRow)chkbox.NamingContainer;
ProgDesience abs=新的ProgDesience();
int progSer=int.Parse(((GridView)(r.NamingContainer)).DataKeys[r.DataItemIndex]。值[0]。ToString());
int-lectCode=int.Parse(((GridView)(r.NamingContainer)).DataKeys[r.DataItemIndex].Values[1].ToString();
int-lectType=int.Parse(((GridView)(r.NamingContainer)).DataKeys[r.DataItemIndex]。值[2]。ToString());
int sessionId=int.Parse(chkbox.ID.Split(“”“)[1]);
abs.LectCode=LectCode;
abs.LectType=LectType;
abs.ProgSer=ProgSer;
abs.SessionId=SessionId;
如果(chkbox.Checked)
{
res=abs.Add();
}
其他的
{
res=abs.Delete();
}
bind缺失();
}
捕获(异常ee)
{
res=假;
bind缺失();
}
}
/* =========================================================================== */
受保护的void gv_选择_行数据绑定(对象发送方,GridViewRowEventArgs e)
{
如果(e.Row.DataItemIndex>=0)
{
DataTable dt=((DataTable)视图状态[“abs”]);
如果(dt!=null&&dt.Rows.Count>0)
{
对于(int i=0;i protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
bool res = true;
try
{
CheckBox chkbox = (CheckBox)sender;
GridViewRow r = (GridViewRow)chkbox.NamingContainer;
ProgAbsence abs = new ProgAbsence();
int progSer = int.Parse(((GridView)(r.NamingContainer)).DataKeys[r.DataItemIndex].Values[0].ToString());
int lectCode = int.Parse(((GridView)(r.NamingContainer)).DataKeys[r.DataItemIndex].Values[1].ToString());
int lectType = int.Parse(((GridView)(r.NamingContainer)).DataKeys[r.DataItemIndex].Values[2].ToString());
int sessionId = int.Parse(chkbox.ID.Split('_')[1]);
abs.LectCode = lectCode;
abs.LectType = lectType;
abs.ProgSer = progSer;
abs.SessionId = sessionId;
if (chkbox.Checked)
{
res = abs.Add();
}
else
{
res = abs.Delete();
}
BindAbsence();
}
catch (Exception ee)
{
res = false;
BindAbsence();
}
}
/* =========================================================================== */
protected void gv_lect_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.DataItemIndex >= 0)
{
DataTable dt = ((DataTable)ViewState["abs"]);
if (dt != null && dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
if (((GridView)(e.Row.NamingContainer)).DataKeys[e.Row.DataItemIndex].Values[0].ToString().Trim() == dt.Rows[i]["prog_ser"].ToString()
&&
((GridView)(e.Row.NamingContainer)).DataKeys[e.Row.DataItemIndex].Values[1].ToString().Trim() == dt.Rows[i]["lect_code"].ToString()
&&
((GridView)(e.Row.NamingContainer)).DataKeys[e.Row.DataItemIndex].Values[2].ToString().Trim() == dt.Rows[i]["lect_type"].ToString())
{
((CheckBox)(e.Row.Cells[int.Parse(dt.Rows[i]["session_id"].ToString())].Controls[1])).Checked = true;
}
}
}
}
}
/* =========================================================================== */
<%@ Page EnableViewState="false" ... %>