放在Repeater或者DataList里的控件不能直接用FindControl找到;必须定位到行列,如Repeater1.Items(?).FindControl()或者Repeater1.Controls(?).FindControl()

解决方案 »

  1.   

    ((LinkButton)Repeater1.Items[0].FindControl("ltnSort1")).Text="dd";
    是这样吗?
    是这样的话它还是会出错.
    未将对象引用设置到对象的实例。
      

  2.   

    楼主可以试着跟踪调试一下,从Repeater1.Controls(0).ID开始,
    Repeater1.Controls(0).Controls(0,1,2,3...)
    Repeater1.Controls(1).Controls(0,1,2,3...)
    ...找到了您就能明白很多
      

  3.   

    在Repeater外部最好通过
    Repeater1.Items[i].FindControl("子控件ID")得到不过你这个是在页眉里,如果是在Repeater自己的事件中要
    if(e.Item.ItemType == ListItemType.Header)
    {
    ((LinkButton)Repeater1.FindControl("ltnSort1")).Text="BBB";
    }
      

  4.   

    在Repeater外部
     
               foreach (RepeaterItem item in rptEnquiries.Controls)
                {
                    if (item.ItemType == ListItemType.Header)
                    {
                        LinkButton myButton = item .FindControl("ltnSort1") as LinkButton;
    if(myButton != null) { 
        myButton.Text = "Hello"; 
    }
                        break;
                    }              
                }