Bonjour,

J'ai un petit problème javascript vis à vis de l'interaction d'une fonction JS sur deux Usercontrols appelés dans la page.

Mon UserControl est composé d'un RadGrid (composant télérik équivalent à un GridView), et celui-ci contient un itemTemplate avec un Checkbox sur chaque ligne. Il contient également un checkbox en header pour faire en sorte qu'une fois checké, celui-ci check toutes les checkboxes de la grid.

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
 
<telerik:RadGrid ID="gvMessageAccueil" runat="server" 
                    ShowStatusBar="true" 
                    AllowPaging="True" PageSize="20"  AutoGenerateColumns="false" >
        <mastertableview NoMasterRecordsText="Aucun accessoire." >    
             <Columns>
 
                <telerik:GridTemplateColumn ItemStyle-Width="1%"  AllowFiltering="False" UniqueName="colChkSelect">
                    <HeaderTemplate>
                        <asp:CheckBox ID="CheckBoxHeader" runat="server" OnClick="selectAll(this)" />
                    </HeaderTemplate>
 
                    <ItemTemplate>
                        <asp:CheckBox ID="CheckBox1" runat="server" />
                    </ItemTemplate>
 
                </telerik:GridTemplateColumn>
            </Columns>
            </mastertableview>
    </telerik:RadGrid>
Ceci rendu possible grâce à la fonction JS :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
        function selectAll(invoker) {
            var gridRef = document.getElementById('<%= gvMessageAccueil.ClientID %>');
            var inputElements = gridRef.getElementsByTagName('input');
            for (var i = 0; i < inputElements.length; i++) {
                var myElement = inputElements[i];
                if (myElement.type == "checkbox") {
                    myElement.checked = invoker.checked;
                }
            }
        }
Ceci fonctionne parfaitement tant que le UserControl n'est inclus qu'une fois dans la page.
S'il est appelé deux fois, le header de la première grid check toutes les lignes de la deuxième grid, mais pas celui de son propre tableau...

Comment dire à JS qu'il ne doit prendre que les éléments qui sont dans sa grid ?

D'avance merci.