****************DataGrid分页状态下CheckBox选定后,翻页仍保存选定信息,怎样操作*************** 我在DataGrid中放入一列CheckBox供用户选定,但DataGrid翻页后,前一页选择的CheckBox的状态又再次变为初始状态,怎样解决这个问题。保存选定值,网上有Session来保存的例子,但我用C#实现不了。望高手帮忙,送以高分。例子在http://www.chinacs.net/archives/11/2004/08/10/1685.html 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我使用的是静态变量,在DataGrid的数据发生变化之前将是否选中记录在静态数组中,在根据静态数组对所有的记录进行操作。呵呵,有点麻烦。 chaos_blue(chaos)您看了我找的那个例子了吗?我现在就是编译不过去。我是用C#做的,错误出在:checks = Session["CheckBoxchecks"] 即使翻到下一页,也是重载Page,我的方法就是,把选定的值读出来之后放到label(visible=false)中就ok!然后用的时候将他取出来. 感覺放到數組里比較好,再把此數組入到session中保存,現次使用操作起來也比較方便。 在翻页邦定前把CHECKBOX的状态保存在自己定义的DATATABLE中,然后可以放入viewstate或Session中,翻页邦定后,从上面保存的地方取出该CHECKBOX的状态,根据里面已有的状态对该页的CHECKBOX作一下处理,这样可以做到这一点 我就是放不了到Session中,我写了一段。帮分析分析!DataGrid1_PageIndexChanged的事件: for(int i=0;i<DataGrid1.Items.Count;i++) { CheckBox h = (CheckBox)DataGrid1.Items[i].Cells[0].Controls[1]; if(h.Checked==true) { checks[DataGrid1.CurrentPageIndex * DataGrid1.PageSize + i] = true; } else { checks[DataGrid1.CurrentPageIndex * DataGrid1.PageSize + i] = false; } } ViewState["NowPage1"] = e.NewPageIndex; GridBind1(); for(int j=0;j<DataGrid1.Items.Count;j++) { CheckBox f = (CheckBox)DataGrid1.Items[j].Cells[0].Controls[1]; if(checks[DataGrid1.CurrentPageIndex * DataGrid1.PageSize + j] == true) { f.Checked = true; } else { f.Checked = false; } }却实现不了,我设了个全局数组checks[]谢谢大家了 C#程序程序集信息修改 C# 如何取得Form的实际宽度 求助:在WPF中制作一个类似Office Word 2007的 同一页面生成两个不重复的图片路径 怎么获得文件的虚拟地址...? c# byte[] 与int转换 关于listView控件单元格能否换行的问题。 文件上传 System.Net.WebClient.UploadFile() 方法所出现的问题,请各位高手帮忙看看 面试题,分享的答案.不对的地方请大家指正! 紧急求助,关于C#部署和发布的问题 如何在java代码中调用.net代码 DATAGRID隐藏表的字段问题!!在线急等!!!!
您看了我找的那个例子了吗?我现在就是编译不过去。
我是用C#做的,错误出在:checks = Session["CheckBoxchecks"]
DataGrid1_PageIndexChanged的事件:
for(int i=0;i<DataGrid1.Items.Count;i++)
{
CheckBox h = (CheckBox)DataGrid1.Items[i].Cells[0].Controls[1];
if(h.Checked==true)
{
checks[DataGrid1.CurrentPageIndex * DataGrid1.PageSize + i] = true;
}
else
{
checks[DataGrid1.CurrentPageIndex * DataGrid1.PageSize + i] = false;
}
}
ViewState["NowPage1"] = e.NewPageIndex;
GridBind1();
for(int j=0;j<DataGrid1.Items.Count;j++)
{
CheckBox f = (CheckBox)DataGrid1.Items[j].Cells[0].Controls[1];
if(checks[DataGrid1.CurrentPageIndex * DataGrid1.PageSize + j] == true)
{
f.Checked = true;
}
else
{
f.Checked = false;
}
}
却实现不了,我设了个全局数组checks[]
谢谢大家了