1

aspxページで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でどのような変更を加える必要がありますか?

4

1 に答える 1

3

条件を次のように変更

 if (objRef.checked && !inputList[i].disabled) {
           inputList[i].checked = true;
 }
 else {
       inputList[i].checked = false;
 }
于 2013-04-04T08:06:07.380 に答える