我有一个8列的数据表。基于列值,我需要禁用网格视图的每一行中的按钮。如何实现这一点。下面是我尝试过的。
C#
dt.Columns.Add("CanLock");
ASPX页面
<asp:TemplateField HeaderText="" ItemStyle-Width="15%" HeaderStyle-CssClass="text-clr-white">
<ItemTemplate>
<asp:Button disabled='<%# Convert.ToBoolean(Eval("CanLock"))?true:false %>' CssClass="btn btn-primary btn-sm btn-approve %>" ID="btnApprove" runat="server" Text="Approve" CommandName="Approve" CommandArgument='<%# Eval("OrderID") %> ' meta:code='<% DataBind(); %>'/>
<a data-toggle="modal" data-target="#ModalRejection" disabled='<%# Convert.ToBoolean(Eval("CanLock"))?true:false %>' class='btn btn-primary btn-sm btn-reject' id="btnRejectApp" data-id='<%# Eval("OrderID") %>'>Reject</a>
</ItemTemplate>
</asp:TemplateField>
不幸的是,当我这样做时,每行中的按钮都被禁用。
当属性存在时,disabled
属性将输入元素设置为禁用状态,因为disabled
is a boolean attribute。如果要禁用服务器控件,则应使用Enabled
属性:
<asp:Button ID="btnApprove" runat="server"
Enabled='<%# !Convert.ToBoolean(Eval("CanLock")) %>'
CssClass="btn btn-primary btn-sm btn-approve %>" Text="Approve" ... />
如果Enabled
属性设置为false
,则disabled
属性将自动附加到生成的<input type="button" />
元素上。
注意:为方便起见,尝试使用能够使用ItemTemplate
的asp:HyperLink
控件替换Eval
部分内的普通锚标记,也可以通过设置Enabled
属性,如上面的按钮。
相关问题:
How to disable button based on column value in another GridView column