在GridView中选择全部不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在GridView中选择全部不起作用相关的知识,希望对你有一定的参考价值。

我有一个.net Gridview,其中添加了“全选”复选框以选择网格中可用的所有行。下面是我的网格代码

<asp:TemplateColumn>
  <HeaderTemplate>
  <input id="chkAll" type="checkbox" onclick="CheckAllDataGridCheckBoxes('chkItem',this.checked)">
   </HeaderTemplate>
   <ItemTemplate>
   <asp:CheckBox ID="chkItem" runat="server"></asp:CheckBox>
   </ItemTemplate>

这是我的javascript代码

<script type="text/javascript">
    function CheckAllDataGridCheckBoxes(aspCheckBoxID, checkVal)
    {
        re = new RegExp(':' + aspCheckBoxID + '$')  //generated control name starts with a colon
        for(i = 0; i < document.forms[0].elements.length; i++)
        {
            elm = document.forms[0].elements[i]
            if (elm.type == 'checkbox')
            {
                if (re.test(elm.name))
                    elm.checked = checkVal
            }
        }
    }
</script>

当我单击“全选”时,为什么我的所有行都保持未选中状态。我的javascript中有什么问题?

更新了Javascript

 function CheckAllDataGridCheckBoxes(aspCheckBoxID, checkVal)
    {
        for (i = 0; i < document.forms[0].elements.length; i++)
        {
            elm = document.forms[0].elements[i]
            if (elm.name.endsWith(aspCheckBoxID))
            {
                    elm.checked = checkVal
            }
        }
    }
答案

正则表达式没有必要执行此任务。请改用:

if (elm.name.endsWith(aspCheckBoxID))

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith

以上是关于在GridView中选择全部不起作用的主要内容,如果未能解决你的问题,请参考以下文章

日期选择器对话框在片段中不起作用[关闭]

Jquery 类选择器在 ASP.Net Gridview 中不起作用

GridView 中的全选不起作用

片段中带有 RequestPermission 的 registerForActivityResult 不起作用

在 Gridview 中选择一行并将其删除 - Asp.net

java代码在片段活动中不起作用