我使用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再次失败。
任何人都有像我这样的问题或知道发生了什么。
答案 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
}
}
}
}