我在DataList控件的ItemTemplate里添加了一个Lable,我想通过对Lable进行赋值来显示他的Text的内容,这个代码我是这样写的:
((Label)DataList1.Items[0].FindControl( "Label2 ")).Text= "昨天作业 ";
但结果显示如下的错误:
索引超出范围。必须为非负值并小于集合大小。参数名: index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名: index
源错误:
行 95: string today=DateTime.Now.ToShortDateString();
行 96: string yestoday=DateTime.Now.AddDays(-1).ToShortDateString();
行 97: ((Label)DataList1.Items[1].FindControl( "Label2 ")).Text= "昨天 ";
行 98:
行 99: SqlConnection cn=DB.strConnection();
源文件: c:\inetpub\wwwroot\sams\main.aspx.cs 行: 97
堆栈跟踪:
[ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
参数名: index]
System.Collections.ArrayList.get_Item(Int32 index) +91
System.Web.UI.WebControls.DataListItemCollection.get_Item(Int32 index) +10
SAMS.main.BindData() in c:\inetpub\wwwroot\sams\main.aspx.cs:97
SAMS.main.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\sams\main.aspx.cs:30
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Page.ProcessRequestMain() +731
问题在哪里,该如何解决?
------解决方案--------------------------------------------------------
要在数据绑定后才可以这样操作
------解决方案--------------------------------------------------------
一、确认数据已经绑定。
二、确认存在“Label2”控件。