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

问题描述 投票:0回答:1

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

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

c# asp.net aspxgridview
1个回答
0
投票

当属性存在时,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" />元素上。

注意:为方便起见,尝试使用能够使用ItemTemplateasp:HyperLink控件替换Eval部分内的普通锚标记,也可以通过设置Enabled属性,如上面的按钮。

相关问题:

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

© www.soinside.com 2019 - 2024. All rights reserved.