我试图在我的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;}
我在这里做错了什么?
答案 0 :(得分:0)
找不到像这样在ItemTemplate中声明的控件是不可能的。 您只能通过ItemShowComments方法获取发件人控件。
答案 1 :(得分:0)
好的,所以我找到了解决问题的方法。
现在,当listview显示特定数据时,我想禁用链接按钮的可见性。我一直在寻找代码背后的答案,但发现我可以在aspx中解决它。
我所做的是为这样的可见性添加一个声明:
Visible='<%# !Eval("Emne").Equals("") %>'
Eval前面的感叹号(!)表示,如果它不等于“”。这意味着如果“Emne”不为空,则该语句为真,因此可见。我可以通过这样编码来反过来做到这一点:
Visible='<%# Eval("Emne").Equals("") %>'