日期:2014-05-19  浏览次数:20403 次

一个郁闷的问题
我在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”控件。