带有Checkbox的GridView在ASP.NET中

时间:2015-02-12 08:09:12

标签: c# asp.net gridview checkbox

我使用Visual Studio 2008在C#中编写ASP.NET代码

我正在尝试在Gridview中获取值选中或取消选中表单复选框。 这是我的代码。

void imbTransferBySelect_Click(object sender, ImageClickEventArgs e)
{
    for (int i = 0; i < GridView1.Rows.Count; i++)
    {
        CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("Transfer_Selector");
        if (cb.Checked)
        {
            //do something
        }
    }
}

取消选中该复选框后,代码运行正常。

但是当复选框被选中时,GridView1.Rows.Count = 0的值为循环失败

我尝试在http://www.aspsnippets.com/Articles/GridView-with-CheckBox-Get-Selected-Rows-in-ASPNet.aspx

中使用其他代码
foreach (GridViewRow row in GridView1.Rows)
{
    if (row.RowType == DataControlRowType.DataRow)
    {
        CheckBox chkRow = (row.Cells[0].FindControl("Transfer_Selector") as CheckBox);
        if (chkRow.Checked)
        {
            //do something
        }
    }
}

未选中复选框时,它运行正常。

当选中复选框时,它会循环显示for-each再次失败。

任何人都有像我这样的问题或知道发生了什么。

1 个答案:

答案 0 :(得分:1)

Buddy根据你给我解决方案的问题在if循环上放了一个foreach条件。检查以下解决方案..

if(GridView1.Rows.Count > 0 )
{
foreach (GridViewRow row in GridView1.Rows)
{
    if (row.RowType == DataControlRowType.DataRow)
    {
        CheckBox chkRow = (row.Cells[0].FindControl("Transfer_Selector") as CheckBox);
        if (chkRow.Checked)
        {
            //do something
        }
    }
}
}