<asp:Button ID="RepButton" Text="回复" Runat=server OnCommand="DelOrRep_Click" CommandName="Rep" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"book_id") %>'>
</asp:Button>
上面是repeater里的控件,我使用OnItemDataBound说是:
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。错误在这一句:
((Button)e.Item.FindControl("DelButton")).Visible=false;

解决方案 »

  1.   

    id号错了.
    ((Button)e.Item.FindControl("RepButton")).Visible=false
      

  2.   

    对不起,id号没有错,是我写错了。我有两个,没注意写成了另一个。
    ((Button)e.Item.FindControl("RepButton")).Visible=false
    这一句也是有的
      

  3.   

    服务器端代码能贴出来吗?
    异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
    ===========================
    说明可能你根本没找到那个控件
    即对象根本就不存在
    现在我只能说要找你要的控件要到项里面去找
      

  4.   

    <P align="center"><asp:repeater id=Repeater1 runat="server" DataMember="guestbook" DataSource="<%# dataSetbook1 %>" OnItemDataBound="R1_ItemDataBound">
    <ItemTemplate>
    <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td><div align="left">姓名:<%# DataBinder.Eval(Container.DataItem,"book_username") %></div>
    </td>
    <td><div align="left">电子邮件:
    <%# DataBinder.Eval(Container.DataItem, "book_email") %>
    </div>
    </td>
    <td><div align="left">留言时间:<%# DataBinder.Eval(Container.DataItem,"book_time") %></div>
    </td>
    </tr>
    <tr>
    <td style="WORD-BREAK: break-all; WORD-WRAP: break-word" colspan="3"><div align="left">
    <asp:Literal id="Literal1" Text='<%# DataBinder.Eval(Container.DataItem,"book_content") %>' runat="server">
    </asp:Literal></div>
    </td>
    </tr>
    <tr>
    <td>
    <asp:Button id="DelButton" Text="删除留言" runat="server" OnCommand="DelOrRep_Click" CommandName="Del" CommandArgument= '<%# DataBinder.Eval(Container.DataItem,"book_id") %>'>
    </asp:Button></td>
    <td colspan="2">
    <asp:Button ID="RepButton" Text="回复" Runat=server OnCommand="DelOrRep_Click" CommandName="Rep" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"book_id") %>'>
    </asp:Button></td>
    </tr>
    </table>
    </ItemTemplate>
    <SeparatorTemplate>
    <hr>
    <br>
    </SeparatorTemplate>
    </asp:repeater></P>
      

  5.   

    可以在repeater的OnItemCreated中添加事件处理,在后台写代码控制。
      

  6.   

    public void R1_ItemDataBound(Object Sender, RepeaterItemEventArgs e) 
    {
    if(!guanli)
    {
    ((Button)Repeater1.FindControl("DelButton")).Visible=false;
    ((LinkButton)e.Item.FindControl("RepButton")).Visible=false;
    }
    }
    我使用ItemDataBound为什么不行呢?
    使用OnItemCreated能行么?我待会试试看