Question

J'ai un panneau de mise à jour dans lequel j'ai un datalist.

Ce panneau de mise à jour se déclenche toutes les secondes pour récupérer les données de la base de données.

J'ai conservé ce panneau de mise à jour dans une balise div activée pour le défilement vertical.

Mais lorsque j'obtiens de nouvelles données, la barre de défilement ne s'ajuste pas automatiquement !!!

J'ai essayé l'option de maintenancecrollback mais cela ne fonctionne pas.

Existe-t-il une option permettant de conserver la barre de défilement à sa position d'origine après le déclenchement du updatepanel?

Était-ce utile?

La solution

Voici ce que je préfère éviter JavaScript, qui doit ajuster la position du défilement à chaque actualisation / mise à jour ...

Je suppose que vous devez avoir conçu une page comme ci-dessous

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional/Always">
    <ContentTemplate>
        <div style="height: 400px/300px; overflow-y:scroll;"> 
            <asp:DataList ID="DataList1" runat="server">
                ....
            </asp:DataList>
        </div>
    </ContentTemplate>
</asp:UpdatePanel>

Le changer en quelque chose comme ceci devrait s'occuper du problème de défilement

<div style="height: 400px/300px; overflow-y:scroll;"> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional/Always">
        <ContentTemplate>
                <asp:DataList ID="DataList1" runat="server">
                    ....
                </asp:DataList>
        </ContentTemplate>
    </asp:UpdatePanel>
</div>

Autres conseils

Essayez ceci:

<script>
  var prm = Sys.WebForms.PageRequestManager.getInstance();
  prm.add_beginRequest(function(){
     window.dTop = document.getElementById('divIdHere').scrollTop;
  });

  prm.add_endRequest(function(){
       setTimeout(function(){
         document.getElementById('divIdHere').scrollTop = window.dTop;
      },100);
  });
</script>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top