如何将asp.net文本框滚动到底部

时间:2009-09-07 08:06:25

标签: asp.net ajax textbox scroll

我正在构建一个包含日志消息的文本框的网站。使用AJAX更新日志。

<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>

我需要在每次更新时滚动文本框。怎么样?

3 个答案:

答案 0 :(得分:3)

处理Sys.WebForms.PageRequestManager.endRequest事件并向下滚动文本框:

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

答案 1 :(得分:0)

尝试一些简单的JavaScript。以下是我认为您可以修改以在您的方案中工作的示例:

<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>

你只需要弄清楚如何调用scrollDown方法...

答案 2 :(得分:0)

为什么不尝试这个简单的例子:

protected void Page_Load(object sender,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>");
        }
    }

只需使用文本框名称更改TextBox1参数即可。您可以看到文本框中的内容滚动到底部。

在AJAX刷新文本框的内容后,您可以调用此java脚本。