日期:2014-05-20  浏览次数:20479 次

获取gridview中动态模板列checkbox的checked值的问题
我在gridview中加入了动态模板列checkbox,并且成功把数据显示出来。然后在gridview的外面建立一个命令按钮,我想做的是当点击命令按钮时,检查gridview中动态模板列checkbox的checked属性值,如果其值为true的,则删除对应的数据库表中的数据。现在如果在命令按钮的单击事件中加入GridView1.DataBind()语句可以得到GridView1的行数,从而可以对GridView1的单元格进行遍历,但是模板列checkbox的checked属性值却一直是false;如果不加GridView1.DataBind()则在命令按钮的单击事件取得的GridView1的行数为0,根本不能对GridView1的单元格进行遍历,怎么是这个样子?各位老大指点呀

------解决方案--------------------
没有bind当然没有行了.
foreach (DataGridItem item in DataGrid1.Items)
{
CheckBox cbx=(CheckBox)item.FindControl( "cbx_select ");
if(cbx.Checked)
{

string id=item.Cells[1].Text.ToString().Trim();
string name=item.Cells[2].Text.ToString().Trim();
}
}
------解决方案--------------------
你的绑定是代码绑定还是直接用datagroudid自动绑定的?
------解决方案--------------------
最好用脚本找到选中的CheckBox先,再form提交到后台随便处理哈,这样简单些。
------解决方案--------------------
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
CheckBox cb = (CheckBox)GridView1.Rows[i].Cells[0].FindControl( "cb ");
if (cb.Checked)
{
string mysql = "delete from a where id= " + i;
…………………
…………………
}
}