一个 datalist 里面有个 label  ID为 Label1 ((Label)this.DataList1.FindControl("Label1")).Text = "1";
出错信息 未将对象引用设置到对象的实例。
请大侠指教!!!

解决方案 »

  1.   

    for(int i=0;i<DataList1.Items.Count;i++)
    {
    ((Label)this.DataList1.Items[i].FindControl("Label1")).Text = "1";
    }
      

  2.   

    楼上的大哥。 这是我刚才改的。 还是找不到。
        private void selectDatalist()
        {
            int DatalistCount = this.DataList1.Items.Count;
            for (int i = 0; i < DatalistCount; i++)
            {
                ((Label)this.DataList1.Items[i].FindControl("Label2")).Text = "23";
            }
        }
      

  3.   

    Label  是在datalist 的foot模板里面。  应该怎么找.  我做的一个方法。
    循环查找。 也找不出来.....
      

  4.   

    呵呵,在footer里面要这样找的:
    如果没有页眉的话如下:
    int DatalistCount = this.DataList1.Items.Count;
    ((Label)this.DataList1.Items[DatalistCount+1].FindControl("Label2")).Text = "23";如果有页眉的话,如下:
    ((Label)this.DataList1.Items[DatalistCount+2].FindControl("Label2")).Text = "23";
      

  5.   

    上面的错了,正确的如下:
    如果没有页眉的话如下: 
    int DatalistCount = this.DataList1.Items.Count; 
    ((Label)this.DataList1.Controls[DatalistCount+1].FindControl("Label2")).Text = "23"; 如果有页眉的话,如下: 
    ((Label)this.DataList1.Controls[DatalistCount+2].FindControl("Label2")).Text = "23"; 
      

  6.   

    脑子乱了,上面的都不对:
     
    如果没有页眉的话如下: 
    int DatalistCount = this.DataList1.Items.Count; 
    ((Label)this.DataList1.Controls[DatalistCount].FindControl("Label2")).Text = "23"; 如果有页眉的话,如下: 
    ((Label)this.DataList1.Controls[DatalistCount+1].FindControl("Label2")).Text = "23"; 
      

  7.   

    还是不行。 貌视Controls只获取ItemTemplate里面的项
      

  8.   

    获取footer模板中的控件方法: 
       private void selectDatalist()
        {
            int DatalistCount = this.DataList1.Items.Count;
            //如果没有页眉的话如下: 
            //((Label)this.DataList1.Controls[DatalistCount].FindControl("Label2")).Text = "23";         //如果有页眉的话,如下: 
            //((Label)this.DataList1.Controls[DatalistCount+1].FindControl("Label2")).Text = "23";     }
      

  9.   

     这样应该能行的、、、、
     foreach (DataListItem li in dlLeavemsg.Items)
     {
         ((Label)dlLeavemsg.FindControl("label")).Text = "1";
     }
      

  10.   

    foreach (DataListItem aa in dlLeavemsg.Items) 

        ((Label)aa.FindControl("label")).Text = "1"; 
    }试一下吧