2012-02-08 86 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()