选择未实现gridview中的所有复选框功能

时间:2011-08-19 13:08:29

标签: c# javascript asp.net visual-studio gridview

我在gridview中标题为“xls”和一个复选框,选中后应选择gridview中的所有复选框列,取消选中xls列应取消选中所有列。

我正在关注两个链接:

Link-1

这里,totalChkBoxes变量为null(尽管我的gridview有行)。事实上,在调试JS时,parseInt和下面行中的代码将以''

的形式出现

Link-2

这里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>

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试将您的parseInt更改为这样的内容,看看它是否有帮助。我知道这只是一个很小的改变,但是小事情往往会打破JS代码:

var totalChkBoxes = parseInt("<%=gvTest.Rows.Count%>");

其次,如果标题中的复选框上有runat =“server”,则可能需要更改此行,如果您的JSFunction:

var mainChkBox = document.getElementById("<%=chkBoxAll.UniqueID%>");