c# - 单击全选复选框时,如何防止选中禁用的 gridview 复选框?

标签 c# javascript asp.net gridview checkbox

我在我的 aspx 页面中使用了 gridview.. 因为我在每一行都有一个复选框,包括标题..

通过单击标题复选框,它将选中所有复选框,包括 gridview 中禁用的复选框。我需要避免选中禁用的复选框

这是我的 GridView 代码:

<asp:GridView ID="CrowdRatingGrid" runat="server" AutoGenerateColumns="false" AllowPaging="true" PageSize="4" OnPageIndexChanging="CrowdRatingGrid_PageIndexChanging" ViewStateMode="Enabled">

<PagerSettings Mode="Numeric" PageButtonCount="4" />
<Columns>
<asp:TemplateField HeaderStyle-BackColor="#DBE2E2" HeaderStyle-Width="60px" HeaderStyle-HorizontalAlign="Center"
                HeaderStyle-Height="62px">
                <HeaderTemplate>
                    <asp:CheckBox ID="SelectAll" runat="server" onclick="SelectAll(this)" />

                </HeaderTemplate>
                <ItemTemplate>
                    <asp:CheckBox runat="server" ID="CheckRow" CssClass="SelectRow" />
                </ItemTemplate>
            </asp:TemplateField>
         </Columns>
        </asp:GridView>

这是我选择所有复选框的js代码:

function SelectAll(objRef) {

            var GridView = objRef.parentNode.parentNode.parentNode;
            var inputList = GridView.getElementsByTagName("input");
            for (var i = 0; i < inputList.length; i++) {
                var row = inputList[i].parentNode.parentNode;


                if (inputList[i].type == "checkbox" && objRef != inputList[i]) {
                    if (objRef.checked) {
                        inputList[i].checked = true;
                    }
                    else {
                        inputList[i].checked = false;
                    }
                }
            }
        }

请帮助实现这一点?我应该在 js 中做哪些更改才能达到我的要求?

最佳答案

将条件更改为

 if (objRef.checked && !inputList[i].disabled) {
           inputList[i].checked = true;
 }
 else {
       inputList[i].checked = false;
 }

关于c# - 单击全选复选框时,如何防止选中禁用的 gridview 复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15805688/

相关文章:

c# - 如何确定属性是从基类继承还是在派生类中声明?

C# - 在 for 循环中使用相同列表大小的索引位于数组边界之外

c# - 我如何在 OSX 中引用(利用)WebKit-Sharp?

asp.net - 如何在另一个下拉列表事件期间刷新下拉列表而不刷新整个网页?

c# - LINQ。根据键连接的另一个字典中的相应值更新一个字典

javascript - 在 NestJS 中,有没有办法将数据从 Guards 传递到 Controller ?

javascript - Object.assign 嵌套属性

javascript - 按钮调用 javascript 函数错误

c# - 如何在 Web API 中维护请求的状态或队列

c# - 安装 CORS 后无法加载文件