我的Repeater控件是这样的            <ItemTemplate>
                <tr>
                    <td class="ta-right"> <%# DataBinder.Eval(Container.DataItem, "ID") %> </td>
                    <td class="ta-right"> <%# DataBinder.Eval(Container.DataItem, "IP") %> </td>
                    <td class="ta-right"> <%# DataBinder.Eval(Container.DataItem, "State") %> </td>
                    <td class="ta-right"> <%# DataBinder.Eval(Container.DataItem, "IsOnline") %> </td>
                    <td class="ta-right<asp:PlaceHolder ID="ph" runat="server"></asp:PlaceHolder></td>                    
                </tr>
            </ItemTemplate>这段代码没有任何问题,可以显示我想显示的数据,但是这个PlaceHolder控件,没有办法是用。
因为在类里面 任何函数里写这一句: ph.Controls.Add(btn);(btn已定义)
就会编译报错:当前上下文不存在“ph”可我命名就定义了啊,这也不是我的自定义控件,这就是很普通的控件啊

解决方案 »

  1.   

    另外说一下,添加 Button控件就可以, 就PlaceHolder不行
      

  2.   

    btn的定义在当前上下文是否有效,而且这个btn是不是处于repeater的item行外定义的。ph在item内定义的话,add就找不到btn了,可能是这样吧,我猜测
      

  3.   


    我说了,btn 是有效的,现在是ph 是当前上下文不存在的,可我明明就是定义了呀
      

  4.   

    我上外文网站查了一下,得一个很重要的信息,说是 Repeater 控件中的子控件不能添加ID 属性
    是这样吗?
      

  5.   

    最后一句少了个"><td class="ta-right"><asp:PlaceHolder ID="ph" runat="server"></asp:PlaceHolder></td>