如何在ListView中访问LinkBut​​ton?

时间:2015-11-07 20:07:45

标签: c# asp.net listview

我试图在我的aspx页面上找到一个链接按钮。

我不想找到发件人,就像特定的发件人一样,我只是想在itemtemplate中找到整个链接按钮并使它们全部不可见。

以下是链接按钮

的ASPX代码
<ItemTemplate>
                 <table>
                     <tr>
                         <td>
                             <asp:TextBox ID="DisplayOP" runat="server" Text="test" Visible="false"></asp:TextBox>
                         </td>
                     </tr>
                 <tr>
                    <td><asp:Linkbutton ID="ItemEmneLabel" runat="server" Text='<%# Eval("Emne") %>' OnClick="ItemShowComments" CommandArgument='<%# Eval("OpslagsID") %>' Visible="true" /></td>
<--- Code Omitted --->

在我的.cs文件后面的代码中,我试着找到它:

var lnkb = (LinkButton)ListView1.FindControl("ItemEmneLabel");
            lnkb.Visible = false;

和此:

        var lnkb = (LinkButton)this.ListView1.FindControl("ItemEmneLabel");
        lnkb.Visible = false;

无论我尝试什么,我都会收到错误说:

  

{&#34;对象引用未设置为对象的实例。&#34;}

我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

找不到像这样在ItemTemplate中声明的控件是不可能的。 您只能通过ItemShowComments方法获取发件人控件。

答案 1 :(得分:0)

好的,所以我找到了解决问题的方法。

现在,当listview显示特定数据时,我想禁用链接按钮的可见性。我一直在寻找代码背后的答案,但发现我可以在aspx中解决它。

我所做的是为这样的可见性添加一个声明:

Visible='<%# !Eval("Emne").Equals("") %>'

Eval前面的感叹号(!)表示,如果它不等于“”。这意味着如果“Emne”不为空,则该语句为真,因此可见。我可以通过这样编码来反过来做到这一点:

Visible='<%# Eval("Emne").Equals("") %>'