Bonjur à tous,
Je suppose que ce genre de problème a déjà été rencontré et résolu.
J'ai un datalist, une bar de scroll à gauche, comme vous l'imaginez, suite à la sélection d'un item en bas de la liste, le postback fait remonter la scrollbar en haut. Une vraie loose.
Voila le script trouvé en javascript :
Ce script est suivie de mon code asp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <script type="text/javascript"> window.onload = function () { var div = document.getElementById("dvScroll"); var div_position = document.getElementById("div_position"); var position = parseInt('<%=Request.Form("div_position") %>'); if (isNaN(position)) { position = 0; } div.scrollTop = position; div.onscroll = function () { div_position.value = div.scrollTop; }; }; </script>
Là ça marche pour ce datalist, mais j'en ai 4, et comme mes connaissances en javascript sont limitées, je me demande si vous ne pourriez pas me donner un coups de main.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <div id="dvScroll" style="overflow-x:hidden;overflow-y:scroll; height:500px"> <asp:DataList ID="dl_Departements" runat="server" CssClass="DlRowsMain"> <AlternatingItemStyle CssClass="DlAlternate" /> <SeparatorStyle CssClass="DlSeparator" /> <ItemTemplate> <asp:Panel ID="TagItemSelected" runat="server" Width="100%" Height="30px"> <asp:ImageButton ID="Logo" CssClass="LogosX" runat="server" ImageUrl="~/Imgs_Data/Logo_Depts.jpg" CommandName="Select" /> </asp:Panel> </ItemTemplate> <SeparatorTemplate></SeparatorTemplate> </asp:DataList> </div> <input type="hidden" id="div_position" name="div_position" /> </div>
Ce qui me faciliterai les choses serait de pouvoir stocker dans la page de code behind, la position du scrollbar pour chaque datalist, puis la ré-injecter apres chaque postback dans chaque datalist... mais là, je ne sais pas si c'est possible. A moins qu'il y ait une autre solution.
Merci pour votre aide
Patrick.
Partager