加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 在Gridview中有条件地隐藏CommandField或ButtonField

发布时间:2020-12-15 18:49:17 所属栏目:asp.Net 来源:网络整理
导读:我有一个GridView显示人物记录。我想有条件地显示一个基于记录的一些属性的CommandField或ButtonField。这个想法是只允许对特定人员执行命令。 这样做最好的方法是什么?我更喜欢一个程序化的声明式解决方案。 解决方法 首先,将ButtonField或CommandField转
我有一个GridView显示人物记录。我想有条件地显示一个基于记录的一些属性的CommandField或ButtonField。这个想法是只允许对特定人员执行命令。

这样做最好的方法是什么?我更喜欢一个程序化的声明式解决方案。

解决方法

首先,将ButtonField或CommandField转换为TemplateField,然后将按钮的Visible属性绑定到实现业务逻辑的方法:
<asp:GridView runat="server" ID="GV1" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="Name" HeaderText="Name" />
        <asp:BoundField DataField="Age" HeaderText="Age" />
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Button runat="server" Text="Reject" 
                Visible='<%# IsOverAgeLimit((Decimal)Eval("Age")) %>' 
                CommandName="Select"/>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

然后,在代码背后,添加方法:

protected Boolean IsOverAgeLimit(Decimal Age) {
    return Age > 35M;
}

这里的优点是可以很容易地测试IsOverAgeLimit方法。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读