GridView使用模版列添加checkbox判断选中时出现错误的问题
问题概况:在GridView上添加了checkbox模版列,checkbox的ID为dbgShowInfo,提供了两个功能,一个是在GridView外有一个checkbox全选,当我选择这个全选的时候,Gridview里面的checkbox列就会全部选中,代码如下:
protected void chkCheckedAll_CheckedChanged(object sender, EventArgs e)
{
for (int i = 0; i <= this.dbgShowInfo.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)this.dbgShowInfo.Rows[i].FindControl("CheckBox1");
if (this.CheckBox2.Checked == true)
{
cbox.Checked = true;
}
else
{
cbox.Checked = false;
}
}
}
还有一个功能是在外面有一个修改按钮,这个按钮点击后会把选中的一行GridView的数据提交给一个新的页面,但是要求是这个Gridview这个时候只允许选择一行,如果一行没选或者多选了,都要提示错误,可是现在的问题是,不论是一行没选,选了n行,还是按要求选择了一行都会提示错误,请大家给看看怎么回事
protected void Button3_Click(object sender, EventArgs e)
{
int j = 0;
for (int i = 0; i <= this.dbgShowInfo.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)dbgShowInfo.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
j++;
}
}
if (j > 1 || j == 0)
{
Response.Write("<script>alert('只能选取一行进行修改');</script>");
}
else
{
GridViewRow Row = this.dbgShowInfo.Rows[j];
string name = Row.Cells[1].Text;
Response.Redirect("WebAddEquip.aspx" + "?equipname=" + name);
}
}
上面的是修改按钮的事件
下面的是界面GridView的代码
<asp:GridView ID="dbgShowInfo" runat="server" AllowSorting="True" AutoGenerateColumns="False"--------------------编程问答-------------------- 顶上去,没有分了,希望大家能够帮帮忙 --------------------编程问答-------------------- 帮忙拉 --------------------编程问答-------------------- 希望大家支持一下哈 --------------------编程问答-------------------- 过来看看
CellPadding="3" Font-Size="9pt" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" Height="158px" Width="853px">
<FooterStyle BackColor="White" ForeColor="#000066" />
<Columns>
<asp:TemplateField HeaderText="选择">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="设备名称" HeaderText="设备名称" />
<asp:BoundField DataField="设备编号" HeaderText="设备编号" />
</Columns>
<RowStyle ForeColor="#000066" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
</asp:GridView>
补充:.NET技术 , ASP.NET