2012-02-08 64 views
1

我有一个Web控件,其中有一个多行文本框。我正在使用timer_tick事件更新文本框的内容。每当timer_tick事件被触发时,我想显示文本框的最后一行。有人能帮我吗?如何滚动到多行文本框的底部?

+1

向我们展示您到目前为止的代码。 – Magnus 2012-02-08 17:26:19

回答

0

你的问题是有点不清楚,但要获得一个ASP.NET TextBox的最后一行在服务器端:

Dim lastLine = txt.Text.Split({Environment.NewLine}, 
          StringSplitOptions.None).Last 

在客户方,你可以得到与该JavaScript的最后一行:

var lines = input.value.split('\n'); 
var lastLine = lines[lines.length-1]; 

你的问题,而不是似乎是“how to scroll asp.net textbox to bottom?

手柄Sys.WebForms.PageRequestManager.endRequest事件和向下滚动文本框:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 

function EndRequestHandler(sender, args) 
{ 
    if (args.get_error() == undefined) 
    { 
     var tbox = $get('<%= TextBox1.ClientID %>'); 
     tbox.scrollTop = tbox.scrollHeight; 
    } 
} 
+0

我创建的聊天应用程序,正如您所知,我正在文本框上使用计时器从数据库中提取邮件并查看特定用户是否有任何邮件。我在Timer_Tick事件中编写代码,每2秒检查一次数据库。当启动此计时器时,文本框每两秒自动滚动到顶部。我想显示文本框的底部,向用户显示新消息。 – krrish 2012-02-08 18:20:43

+0

@krisch:所以你的问题是:如何滚动到多行文本框的底部? – 2012-02-08 19:00:53

+0

是的,你是正确的(每次刷新时都应该显示底部) – krrish 2012-02-08 19:03:10

0

我觉得OP在每次更新时都在寻找滚动文本框的底部。 我发现了this帮助了我。

Textbox1.SelectionStart = Textbox1.Text.Length - 1 
Textbox1.ScrollToCaret()