日期:2014-05-18  浏览次数:20451 次

datalist 中嵌套checkboxlist,怎么绑定不上数据!!
我在使用datalist   中嵌套checkboxlist时,别的没有任何处理 <asp:datalist   id= "DataList1 "
runat= "server ">
<ItemTemplate>
<table   cellpadding= "0 "   cellspacing= "0 ">
<tr>
<td> <%#   DataBinder.Eval(Container.DataItem, "test ")%> </td>
</tr>
<tr>
<td>
<asp:CheckBoxList   Runat= "server "   ID= "chk "> </asp:CheckBoxList>
</td>
</tr>
</table>
</ItemTemplate>
</asp:datalist>
然后在cs中给checkboxlist添加值时,提示未将对象应用到对象实例
for(int   j=1;j <3;j++)
{

((CheckBoxList)this.DataList1.FindControl( "chk ")).Items.Add(j.ToString());
}
怎么回事啊!!帮帮忙啊

------解决方案--------------------
((CheckBoxList)this.DataList1.FindControl( "chk ")).Items.Add(j.ToString());
这句不是这样写的

改称这样
for (int i=0;i <this.DataList1.Items.Count;i++)
{
for(int j=1;j <3;j++)
{
(CheckBoxList)this.DataList1.Items[i].FindControl( "chk ")).Items.Add(j.ToString())
}
}
------解决方案--------------------
最好是放在OnItemDataBound事件中,如果用的方法,你要主要DataList1的头和尾,因为DataList1.Items包括了头和尾,而头和尾是找不到chk的,这样试试


for (int i=0;i <this.DataList1.Items.Count;i++)
{
for(int j=1;j <3;j++)
{
if (DataList1.Items[i].ItemType == ListItemType.Item ||
DataList1.Items[i].ItemType == ListItemType.AlternatingItem)
{
(CheckBoxList)this.DataList1.Items[i].FindControl( "chk ")).Items.Add(j.ToString())
}
}
}