我在gridview中标题为“xls”和一个复选框,选中后应选择gridview中的所有复选框列,取消选中xls列应取消选中所有列。
我正在关注两个链接:
这里,totalChkBoxes变量为null(尽管我的gridview有行)。事实上,在调试JS时,parseInt和下面行中的代码将以''
这里GridView2变量也是空的。
我在JS中正在做的一个常见变化是替换<%= .....%> by<%#....%>
请指导我做错了什么。您还可以通过提供一些合适的链接来实现所需的功能
使用我的工作JS更新代码
<script type="text/javascript" language="javascript">
function checkAllBoxes() {
var gvControl = document.getElementById("gvSample");
//this is the checkbox in the item template.
var gvChkBoxControl = "chkSelectItem";
//Header Template checkbox.
var mainChkBox = document.getElementById("chkBoxAll");
//Array of Inputs in gridview.
var inputTypes = gvControl.getElementsByTagName("input");
for (var i = 0; i < inputTypes.length; i++) {
//if the input type is a checkbox and the id of it is what we set above
//then check or uncheck according to the main checkbox in the header template
if (inputTypes[i].type == 'checkbox' && inputTypes[i].id.indexOf(gvChkBoxControl, 0) >= 0)
inputTypes[i].checked = mainChkBox.checked;
}
}
GRIDVIEW CODE
<asp:TemplateField>
<HeaderTemplate>
<table style="width: 15px" cellpadding="0" cellspacing="0">
<tr>
<td>
<asp:Label ID="lblXls" runat="server" Text="xls"></asp:Label>
<br />
<input id="chkBoxAll" type="checkbox" onclick="checkAllBoxes()" />
</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkSelectItem" runat="server" />
</ItemTemplate>
</asp:TemplateField>
谢谢!
答案 0 :(得分:0)
尝试将您的parseInt更改为这样的内容,看看它是否有帮助。我知道这只是一个很小的改变,但是小事情往往会打破JS代码:
var totalChkBoxes = parseInt("<%=gvTest.Rows.Count%>");
其次,如果标题中的复选框上有runat =“server”,则可能需要更改此行,如果您的JSFunction:
var mainChkBox = document.getElementById("<%=chkBoxAll.UniqueID%>");