<FooterTemplate>
<asp:Label ID="lblCurrentPage" runat="server" Text="1"></asp:Label> 页 / 共 <asp:Label ID="lblPageCount" runat="server" Text="1"></asp:Label> 页
</FooterTemplate>我将两个标签放在 Repeater 控件的 FooterTemplate 中。
然而在C#代码中这样写:
((Label)Repeater1.FindControl("lblCurrentPage")).Text = "test";可运行时就出了这样的一个错:未将对象引用设置到对象的实例。 NullReferenceException
经过检验是((Label)Repeater1.FindControl("lblCurrentPage")) 对象为空(Null)请问为什么FindControl查找不到FooterTemplate里的内容呢?

解决方案 »

  1.   

    if(e.Item.ListItem==ListItemType.Footer)
    {
       ((Label)Repeater1.FindControl("lblCurrentPage")).Text = "test";
    }
    这样试试看。
      

  2.   

    if(e.Item.ListItem==ListItemType.Footer)
    {
     
       Label  pageno=(Label)e.Item.FindControl("lblCurrentPage"));
       .....
    }
    在databound事件中。
      

  3.   

    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Footer)
            {
                ((Label)Repeater1.FindControl("lblCurrentPage")).Text = "test"; // 错误
            }
        }还是不性啊`!((Label)Repeater1.FindControl("lblCurrentPage")) 为 null