【发布时间】:2018-12-21 00:40:39
【问题描述】:
我有一个 .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
}
}
}
【问题讨论】:
-
将 Form1 更改为 document.forms[0]?
-
@Ctznkane525 我现在可以进入循环,但我的“选择所有行”功能仍然无法正常工作。这里还缺少什么?谢谢
-
给出复选框的客户端 ID 的示例...您可以在页面加载后通过“查看源代码”选项执行此操作...这将告诉您您的正则表达式是否为有效
-
IMT_cpDefaultContentPlaceHolder_dgRegions_ctl02_chkItem是“查看源代码”中行的复选框的 ID。正则表达式是否有效? -
我认为我的正则表达式无效..请您指导我根据生成的 id 格式化正确的..谢谢
标签: javascript c# asp.net gridview checkbox