Bonjour,

j'ai un gridview qui comporte des cases à cocher et une entête de colonne permettant de cocher toutes les cases de mon gridview.
Malheureusement, je n'arrive pas à faire fonctionner comme il faut mon script en jquery et je vous sollicite pour m'aider à trouver mon problème.


Voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 <asp:GridView ID="gvResultat" runat="server" AutoGenerateColumns="False" DataSourceID="odsResultat"
                    DataKeyNames="ID" AllowPaging="true">
                    <EmptyDataTemplate>
                        <p style="font-style: italic">
                            &nbsp; Aucune ligne.</p>
                    </EmptyDataTemplate>
                    <Columns>
                        <asp:TemplateField ShowHeader="False">
                            <HeaderTemplate>
                                 <input type='checkbox' id='checkAllResultat'  onclick="CheckAll('checkAllResultat','checkResultat')" />
                            </HeaderTemplate>
                            <ItemTemplate>
                                <asp:CheckBox ID="cbResultat" runat="server" CssClass="checkResultat" onclick="CheckDetail('checkAllResultat','checkResultat')" />
                             </ItemTemplate>
                        </asp:TemplateField>
                        <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
                        ...

Voici mon jquery déposer un peu plus haut dans ma page
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
<script type="text/javascript">
 
        function CheckAll(name, child) {
            var ischecked = false;
            if ($('#' + name).attr('checked'))
                ischecked = true;
            $('.' + child + ' :checkbox').each(function (i) {
                !$(this).attr('checked', ischecked);
            });
 
            $('#' + name).removeClass('ui-state-disabled');
        }
 
        function CheckDetail(name, child) {
            var ischecked = false;
            if ($('#' + name).attr('checked'))
                ischecked = true;
 
            $('#' + name).removeClass('ui-state-disabled');
            $('.' + child + ' :checkbox').each(function (i) {
                var checked = false;
                if ($(this).attr('checked')) {
                    checked = true;
 
                }
 
                if (ischecked != checked) {
                    $('#' + name).addClass('ui-state-disabled');
                    return;
                }
            });
 
 
        }
 
    </script>
Il arrive seulement à me décocher mes cases mais pas à les recocher quand je clic sur l'entete.

Merci d'avance pour votre aide