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

前端之家收集整理的这篇文章主要介绍了asp.net – 在Gridview中有条件地隐藏CommandField或ButtonField前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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方法

猜你在找的asp.Net相关文章