【问题标题】:Disable other CheckBoxes if one CheckBox is checked in GridView ItemTemplate in ASP.Net [closed]如果在 ASP.Net 的 GridView ItemTemplate 中选中一个 CheckBox,则禁用其他 CheckBox [关闭]
【发布时间】:2015-12-11 06:24:02
【问题描述】:

我在使用项目模板创建的网格视图中有两个复选框。 如果在网格视图中选中一个复选框,我想禁用其他复选框。

Gridview 代码:-

 <asp:TemplateField HeaderText="Approved">
      <ItemTemplate>
          <asp:CheckBox ID="chkApprove" Text="Approved" runat="server" />
      </ItemTemplate>
 </asp:TemplateField>
 <asp:TemplateField HeaderText="Rejected">
      <ItemTemplate>
           <asp:CheckBox ID="chkRejected" Text="Rejected" runat="server" />
      </ItemTemplate>
 </asp:TemplateField>

Javascript 代码:-

    function CheckBox_Clicked(chk) {
      var grid = chk.parentNode.parentNode.parentNode;
      var chks = grid.getElementsByTagName("input");
      for (var i = 0; i < chks.length; i++) {
        if (chks[i].type == "checkbox" && chks[i] != chk) {
          chks[i].disabled = chk.checked;
        }
      }
    } 

【问题讨论】:

标签: c# asp.net gridview


【解决方案1】:

您可以像这样使用 jQuery 轻松做到这一点:

$(document).ready(function () {
    $('input[id*="chkApprove"]').change(function () {
       var currentRow = $(this).parents('tr')[0];
       $('input[id*="chkRejected"]', currentRow).attr('disabled', this.checked);
    });

    $('input[id*="chkRejected"]').change(function () {
       var currentRow = $(this).parents('tr')[0];
       $('input[id*="chkApprove"]', currentRow).attr('disabled', this.checked);
    });
});

代码说明:-

我正在使用 jQueryEnds with 属性选择器来获取 chkRejected 复选框,因为它的 ID 将呈现为 GridView1_chkApprove_0 并注册更改事件。在这里面我找到了包含的行(因为 gridview 被渲染为 HTML 表),最后选择了另一个复选框(在同一行内)并禁用它。

【讨论】:

    猜你喜欢
    • 2015-11-16
    • 2012-09-05
    • 2012-05-26
    • 2012-03-18
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    相关资源
    最近更新 更多