2011-08-19 44 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%>");