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

时间:2019-02-18 06:34:22

标签: c# asp.net aspxgridview

我有一个包含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>

不幸的是,当我这样做时,每一行中的按钮都被禁用。

1 个答案:

答案 0 :(得分:0)

由于disabled is a boolean attributedisabled属性在存在该属性时将输入元素设置为禁用状态。如果要禁用服务器控件,则应改用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使用,也可以通过设置{{ 1}}属性,如上方的按钮。

相关问题:

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