获取GridViw中CheckBox的值

时间:2022-01-04 06:04:36
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
        <FooterStyle BackColor="#990000" Font-Bold="true" ForeColor="white" />
        <Columns>
            <asp:BoundField DataField="VoteID" HeaderText="VoteID" ReadOnly="true" SortExpression="VoteID" />
            <asp:BoundField DataField="item" HeaderText="项目名" SortExpression="item" />
           <asp:TemplateField>
               <ItemTemplate>
                <asp:CheckBox runat="server" id="cbxID" />
               </ItemTemplate>
           </asp:TemplateField>
        </Columns>
        <RowStyle BackColor="#FFFBD6" ForeColor="#333333" HorizontalAlign="center" />
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$appSettings:SqlConnnectionString %>" SelectCommand="Select VoteID,Item From Votes"></asp:SqlDataSource>
        <br />
        <asp:Button ID="btnVote_Click" runat="server" OnClick="btnVote_Click_Click" Text="我要投票" />
-------------------------这是前后GridView的代码。。
---------------------------------
protected void btnVote_Click_Click(object sender, EventArgs e)
    {
        try
        {
          //  web Web = new web();
            foreach (GridViewRow item in GridView1.Rows)
            {
                CheckBox check = (CheckBox)item.FindControl("cbxID");
                if (check != null && check.Checked == true)
                {
                    int ID = Int32.Parse(GridView1.DataKeys[item.RowIndex].ToString());
                    Response.Write("ID" + ID + "<br>");
                }
            }
        }
        catch(Exception ex)
        {
            Response.Write("asdf");
        }
    }
-----------------------这是获取CheckBox的值的代码。。为什么没法获取到呢。
在GridView里面如果用<asp:CheckBoxFields>可以把ID值与它绑定吗?

7 个解决方案

#1


CheckBox的Text属性可以绑定一个字段,但往往绑定显示的文本,绑定ID的话显示一个数字感觉不舒服。一般要绑定ID且不让ID显示的话,可以在模板中再放一个HiddenField,它的Value属性绑定ID。

#2


CheckBox check = item.FindControl("cbxID") as CheckBox;

#3


嗯。现在是想当选择多选框时点击“我要投票”的按钮,后台获取选中的复选框的值。以便对相应的记录加1..

#4


foreach (GridViewItem item in GridView1.Items)
            {
                CheckBox check = (CheckBox)item.FindControl("cbxID");
                if (check != null && check.Checked == true)
                {
                    int ID = Int32.Parse(e.cell[0].Text);
                    Response.Write("ID" + ID + "<br>");
                }
            }
        }

#5


这是一个投票的题目哦。。以上的方法好像还是不行。点击“我要投票”时还是显示“asdf”。

#6


btnVote_Click_Click(object sender, EventArgs e)
你这个方法里本来就没有写取到ID后更新的方法啊,你的问题问的是取不到CKECKBOX的值啊

#7


是的,.aspx文件里面放了一个GridView,通过选择复选框来对几个项目进行投票,在aspx.cs里面是用
protected void btnVote_Click_Click(object sender, EventArgs e)
    {
        try
        {
          //  web Web = new web();
            foreach (GridViewRow item in GridView1.Rows)
            {
                CheckBox check = (CheckBox)item.FindControl("cbxID");
                if (check != null && check.Checked == true)
                {
                    int ID = Int32.Parse(GridView1.DataKeys[item.RowIndex].ToString());
                    Response.Write("ID" + ID + "<br/>");
                }
            }
        }
        catch(Exception ex)
        {
            Response.Write("asdf");
        }
    }
来处理的。可点击“我的投票”按钮时,页面上显示asdf。。说明有错误的,这要怎么处理呀。。

#1


CheckBox的Text属性可以绑定一个字段,但往往绑定显示的文本,绑定ID的话显示一个数字感觉不舒服。一般要绑定ID且不让ID显示的话,可以在模板中再放一个HiddenField,它的Value属性绑定ID。

#2


CheckBox check = item.FindControl("cbxID") as CheckBox;

#3


嗯。现在是想当选择多选框时点击“我要投票”的按钮,后台获取选中的复选框的值。以便对相应的记录加1..

#4


foreach (GridViewItem item in GridView1.Items)
            {
                CheckBox check = (CheckBox)item.FindControl("cbxID");
                if (check != null && check.Checked == true)
                {
                    int ID = Int32.Parse(e.cell[0].Text);
                    Response.Write("ID" + ID + "<br>");
                }
            }
        }

#5


这是一个投票的题目哦。。以上的方法好像还是不行。点击“我要投票”时还是显示“asdf”。

#6


btnVote_Click_Click(object sender, EventArgs e)
你这个方法里本来就没有写取到ID后更新的方法啊,你的问题问的是取不到CKECKBOX的值啊

#7


是的,.aspx文件里面放了一个GridView,通过选择复选框来对几个项目进行投票,在aspx.cs里面是用
protected void btnVote_Click_Click(object sender, EventArgs e)
    {
        try
        {
          //  web Web = new web();
            foreach (GridViewRow item in GridView1.Rows)
            {
                CheckBox check = (CheckBox)item.FindControl("cbxID");
                if (check != null && check.Checked == true)
                {
                    int ID = Int32.Parse(GridView1.DataKeys[item.RowIndex].ToString());
                    Response.Write("ID" + ID + "<br/>");
                }
            }
        }
        catch(Exception ex)
        {
            Response.Write("asdf");
        }
    }
来处理的。可点击“我的投票”按钮时,页面上显示asdf。。说明有错误的,这要怎么处理呀。。