遍历删除datalist中选中的复选框
我想在datalist中遍历删除选中的checkbox,但是后台代码获取到前台的checkbox后判断选中状态时始终是false为什么啊!!!!后台代码:foreach(...
我想在datalist中遍历删除选中的checkbox ,但是后台代码获取到前台 的checkbox后 判断选中状态时始终是 false
为什么啊!!!!
后台代码:
foreach (DataListItem item in wjwin.Items)
{
CheckBox chkItem = (CheckBox)item.FindControl("checkid");
Response.Write(chkItem.Checked);//该处始终是false啊
if (chkItem.Checked)
{
判断始终是false 进不来啊啊啊啊啊!!!
}
} 展开
为什么啊!!!!
后台代码:
foreach (DataListItem item in wjwin.Items)
{
CheckBox chkItem = (CheckBox)item.FindControl("checkid");
Response.Write(chkItem.Checked);//该处始终是false啊
if (chkItem.Checked)
{
判断始终是false 进不来啊啊啊啊啊!!!
}
} 展开
1个回答
展开全部
Page_Load事件中绑定列表的方法代码外套一句:
if(!IsPostBack)
{
//绑定列表代码
}
if(!IsPostBack)
{
//绑定列表代码
}
追问
这句意思是什么啊。。。 新手不懂
追答
列表绑定初始化后,肯定有个默认状态;绑定显示后,此时服务器和客户端你看到的结果没有关系了;
你的代码是在什么时候执行呢?按钮单击?还是复选框状态改变时?不管哪种,你肯定会触发服务器端回发,即回触发Submit提交,此时服务器不知道是第一次请求,还是你的事件请求所以又把服务器要执行的所有代码都执行一遍,所以跟你看到的第一次执行是一样的,因此你的事件代码也看不到效果!
问题是可以解决的,就是在Page_Load里把只在第一次载入要执行的代码放入if(!Page.IsPostBack)内,这是页面属性来判断是第一次执行,还是回发后的执行!出于多种考虑,你要习惯性把载入事件放入刚才的代码内:
具体解释如下:
.. Page_Load()..
{
//如果这是页面第一次请求,而非事件提交回发导致的载入
if(!Page.IsPostBack)
{
//你的代码
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询