2011-08-19 41 views
0

我在gridview中标题为“xls”和一个复选框,选中时应选中gridview中的所有复选框列,并取消选中xls列应取消选中所有列。GridView中的所有复选框功能没有被执行

我以下两个链接:

Link-1

这里,totalChkBoxes变量来空(尽管我的GridView有行)。事实上调试JS,内部parseInt函数和下面行代码时即将作为''

Link-2

这里也GridView2可变即将空。

说我这样做在两个JS正在取代<%一个共同的变化= .....%>由<%#......%>

请指导,以我在做什么错误。您也可以通过给一些适当的链接帮助,以实现所需的功能

代码我工作的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

我弄错了我所做的。而不是gridview.clientId,我已经使用gridview名称本身。它现在正在运行!荣誉给我! –

+0

我已经使用Link-1 Javascript。但是,如果我从gridview中取消选择任何一个复选框,那么标题复选框仍然会被选中。 –

回答

0

尝试改变你的parseInt到这样的东西,看看它是否有所帮助。我知道这只是一个小的变化,但小东西往往会打破JS代码:

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

其次,如果你已经在标题中的复选框的Runat =“服务器”,你可能需要的,如果要改变这一行你JSFunction:

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