当前位置:编程学习 > C#/ASP.NET >>

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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,