解决这个问题
就是给你的checkbox加上onclick的js事件
用页面上的一个宽度为0的文本框来记录选择条目的ID
选中的时候写入
取消的时候删除
--
在每次DataBind的时候,察看id是否在文本框里面
如果在,那么设置checkbox的checked为true
就是给你的checkbox加上onclick的js事件
用页面上的一个宽度为0的文本框来记录选择条目的ID
选中的时候写入
取消的时候删除
--
在每次DataBind的时候,察看id是否在文本框里面
如果在,那么设置checkbox的checked为true
{
if ( obj.checked )
{
document.all.<%= tb_IdNames.ClientID %>.value = document.all.<%= tb_IdNames.ClientID %>.value + obj.value + ",";
}
else
{
var str1 = obj.value + ",";
document.all.<%= tb_IdNames.ClientID %>.value = document.all.<%= tb_IdNames.ClientID %>.value.replace( str1,"" );
}
}
if ( e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)
{
CheckBox cb = (CheckBox)e.Item.FindControl("yourCheckBoxId");
cb.Attributes.Add("value",e.Item.cells[0].Text);//e.Item.cells[0]是你的ID列,不可见。
if(tb_IdNames.Indexof("," +e.Item.cells[0].Text + ",") > 0)
cb.checked = true;
}
你的方法不错,实现起来也简单,我那时也像你那样设计了一个记录ID的文本框,
不过除了此方法外,还有没有更简单的方法呢?因为,我要多次使用这种功能,viewstate好象不可以,能否把他写成公用函数呢?