【问题标题】:How do I reach a LinkButton within ListView?如何在 ListView 中访问 LinkBut​​ton?
【发布时间】:2015-11-07 20:07:45
【问题描述】:

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

我不想找到始发者,和具体的发件人一样,我只想在itemtemplate中找到整体的linkbutton,让它们全部不可见。

这是链接按钮所在的 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;

但是无论我尝试什么,我都会收到一条错误消息:

{"对象引用未设置为对象的实例。"}

我在这里做错了什么?

【问题讨论】:

标签: c# asp.net listview


【解决方案1】:

不可能找到像这样在 ItemTemplate 中声明的控件。 您只能在 ItemShowComments 方法中获取带有 sender 的控件。

【讨论】:

  • 哦……真可惜。问题是我希望能够单击列表中的特定链接按钮。这将改变 select 语句的值,强制它在 pagereload 上创建一个新视图。但是我希望该视图中的按钮不可见。
【解决方案2】:

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 2023-03-12
    • 2023-03-28
    相关资源
    最近更新 更多