.net 的一个循环语句..总差一个没进来!!会的来帮个忙

来源:百度知道 编辑:UC知道 时间:2024/06/15 12:29:13
我这里有一个DataList控件.已经绑定了数据,16条为页,4条一行.
我在ItemDataBound事件中加入如下代码.希望通过它来隐藏DataList控件中一个LinkButton.可是它每次总是只隐藏部份.最后一个总是会显示.代码如下:
foreach (DataListItem Item in DataList1.Items)
{
((LinkButton)Item.FindControl("LBtnDel")).Visible = false;
}

我又另外用了一种方法,用的是for循环:
for (int i = 0; i < DataList1.Items.Count; i++)
{
((LinkButton)score.Items[i].FindControl("LBtnDel")).Visible = false;
}
但是效果也是一样.当我给DataList1.Items.Count+1后就会出现索引超出范围的错误!!

哪位大哥来帮忙看下!!
liyi830813,你的方法行不通啊!!他是索引超出范围了!!

这个是你循环以及对ItemDataBound事件理解不透造成的错误。
当项被数据绑定到 DataGrid 控件后,将引发 ItemDataBound 事件。此事件为您提供了在客户端显示数据项之前访问该数据项的最后机会。当引发此事件后,该数据项将被设为空,并且不再可用。
建议用e.Item.FindControl ( \"LBtnDel\" ).Visible = false;

菜鸟意见:
循环次数不够
i <=DataList1.Items.Count
或者你加个IF 当i>listCount时跳出循环好了