2009-09-07 6 views
0

Je construis un site Web avec zone de texte contenant des messages de journal. le journal est mis à jour en utilisant AJAX.comment faire défiler asp.net zone de texte vers le bas

<asp:UpdatePanel ID="UpdatePanel1" runat="server" > 
    <ContentTemplate> 
     <asp:TextBox ID="TextBox1" runat="server"         
      onload="textbox_load" 
      Height="110px" 
      TextMode="MultiLine"    
      Width="100%"> 
     </asp:TextBox>  
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> 
    </Triggers> 
</asp:UpdatePanel> 

Je dois faire défiler la zone de texte à chaque mise à jour. Comment?

Répondre

3

gérer l'événement Sys.WebForms.PageRequestManager.endRequest et faites défiler vers le bas de la zone de texte:

var tbox = $get('<%= TextBox1.ClientID %>'); 
tbox.tbox.scrollTop = tbox.scrollHeight; 
+0

.scrollDown() semble ne pas être défini! Je reçois une exception javascript – ala

+1

Désolé - scrollDown était ma fonction. Ma réponse a été mise à jour –

+0

Je suis en train d'essayer cela mais maintenant, où le script ci-dessus doit-il aller exactement? Je l'ai en dehors de mes balises html, à l'intérieur à côté de ma zone de texte et aucun ne fonctionne, barre de défilement reste en haut de la zone de texte après chaque rafraîchissement! – Fearghal

0

Essayez javascript plaine. Voici un exemple, je pense que vous pouvez modifier pour travailler dans votre scénario:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 

    <script type="text/javascript"> 
    function scrollDown() 
    { 
     document.getElementById('<%=TextBox1.ClientID%>').scrollTop = document.getElementById('<%=TextBox1.ClientID%>').scrollHeight; 
    }; 
    </script> 

</head> 
<body> 
    <form id="form1" runat="server"> 
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
    </form> 
</body> 
</html> 

Il vous suffit de savoir comment appeler la méthode Scrolldown ...

+0

cela peut être bon pour le contrôle HTML textarea, mais comment ajouter une fonction javascript à ASP: contrôle du serveur TextBox? – ala

+0

Mise à jour de l'échantillon ... –

0

Pourquoi ne pas vous essayez cet exemple simple:

protected void Page_Load (expéditeur d'objet, EventArgs e) { if (! IsPostBack) {

  Page.ClientScript.RegisterStartupScript(this.GetType(), 
      "ScrollTextbox", 
      "<script type=\"text/javascript\">document.getElementById('" + 
      this.TextBox1.ClientID + 
      "').scrollTop = document.getElementById('" + 
      this.TextBox1.ClientID + 
      "').scrollHeight; " + 
      " </script>"); 
     } 
    } 

Modifiez simplement le paramètre TextBox1 avec le nom de votre zone de texte. Vous pouvez voir que le contenu de la zone de texte défile vers le bas.

Vous pouvez appeler ce script Java après qu'AJAX a actualisé le contenu de votre zone de texte.

Questions connexes