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.
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
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 fonctionne parfaitement tant que le UserControl n'est inclus qu'une fois dans la page.
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; } } }
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.
Partager