如何禁用创建的网格视图行上的 asp.net 按钮

How to Disable asp.net button on Grid View row created

我有一个列值为 8 columns.Based 的数据表,我需要禁用网格每一行中的按钮 view.How 以实现 this.Below 是我尝试过的.

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. If you want to disable a server control, you should use 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" /> 元素上。

注意:为了您的方便,请尝试用 asp:HyperLink 控件替换 ItemTemplate 部分内的普通锚标记,该控件可用于 Eval 用法,也可以像上面的按钮那样设置 Enabled 属性。

相关问题:

How to disable button based on column value in another GridView column