2013-04-04 41 views
1

我在aspx頁面中使用的GridView。在我必須在每一行包括標題複選框..如何防止選中所有複選框時禁用GridView的禁用複選框?

通過點擊標題複選框,它會檢查所有的複選框,包括GridView中禁用複選框。我需要爲了避免得到檢查

殘疾人複選框,這是我的GridView控件代碼:

<asp:GridView ID="CrowdRatingGrid" runat="server" AutoGenerateColumns="false" AllowPaging="true" PageSize="4" OnPageIndexChanging="CrowdRatingGrid_PageIndexChanging" ViewStateMode="Enabled"> 

<PagerSettings Mode="Numeric" PageButtonCount="4" /> 
<Columns> 
<asp:TemplateField HeaderStyle-BackColor="#DBE2E2" HeaderStyle-Width="60px" HeaderStyle-HorizontalAlign="Center" 
       HeaderStyle-Height="62px"> 
       <HeaderTemplate> 
        <asp:CheckBox ID="SelectAll" runat="server" onclick="SelectAll(this)" /> 

       </HeaderTemplate> 
       <ItemTemplate> 
        <asp:CheckBox runat="server" ID="CheckRow" CssClass="SelectRow" /> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
     </asp:GridView> 

這是我選擇所有複選框JS代碼:

function SelectAll(objRef) { 

      var GridView = objRef.parentNode.parentNode.parentNode; 
      var inputList = GridView.getElementsByTagName("input"); 
      for (var i = 0; i < inputList.length; i++) { 
       var row = inputList[i].parentNode.parentNode; 


       if (inputList[i].type == "checkbox" && objRef != inputList[i]) { 
        if (objRef.checked) { 
         inputList[i].checked = true; 
        } 
        else { 
         inputList[i].checked = false; 
        } 
       } 
      } 
     } 

請幫助實現此目的?我應該在js中做出什麼改變才能達到我的要求?

回答

3

更改條件

if (objRef.checked && !inputList[i].disabled) { 
      inputList[i].checked = true; 
} 
else { 
     inputList[i].checked = false; 
}