我有一个显示个人记录的GridView
。我想根据基础记录的某些属性有条件地显示CommandField
或ButtonField
。这个想法是只允许对特定人员执行命令。
做这个的最好方式是什么?我更喜欢声明性解决方案而不是程序性解决方案。
最佳答案
首先,将ButtonField
或CommandField
转换为TemplateField
,然后将按钮的Visible
属性绑定(bind)到实现业务逻辑的方法:
<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 - 有条件地在Gridview中隐藏CommandField或ButtonField,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1461302/