您的位置:首页 > 其它

重新绑定数据的时候,如何保留Datagrid中的checkbox的值

2005-06-22 11:10 417 查看
http://community.csdn.net/Expert/topic/4097/4097597.xml?temp=.1887323

Q:
ASP.NET(C#)开发WebForm

DataGrid中我使用了模版列,在其中添加了CheckBox。出现下面的情况:
当我通过按钮列编辑完一行,重新进行数据绑定的时候,原来选择好的CheckBox,会变成未被选择的状态。

请问有什么办法可以保留原来CheckBox的状态?请指点,谢谢!

学习,关注……

注:checkBox的checked属性是用户单击的。

A:
刚刚有人问过这个问题,我再回答一遍.
1.你必须对你的datagrid设定主键
2.在页面提交(重新绑定)之前,先求取datagrid控件(当前)被选中的项,并且把它们记录下来(你可简单的在页面放一个HIDDEN)
for(int i=0;i<this.datagrid1.Items.Count;i++)
{
CheckBox mychk = (CheckBox)this.datagrid1.Items[i].FindControl("CheckBox1");
if(mychk.Checked == true)
{
this.Hidden1.Value += "|" + this.datagrid1.DataKeys[i].ToString();
}
}
3.上述求取完成之后,再绑定
4.重新绑定完成之后(比如分页点击下一页,再回到原来的页面),取出hidden的值,循环控件判断主键值是否在HIDDEN的值里面,如果是就选中
string tmp = "";
string hvalue = "|" + this.Hidden1.Value + "|"
for(int i=0;i<this.datagrid1.Items.Count;i++)
{
CheckBox mychk = (CheckBox)this.datagrid1.Items[i].FindControl("CheckBox1");
tmp=this.datagrid1.DataKeys[i].ToString();
if(hvalue.indexOf(tmp) != -1)
{
//表示查找到当前记录了
mychk.Checked = true;
}
}

这样就可以顺利实现你的要求了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐