2011-09-05 48 views
0

在我使用Iframe的主頁面的contentPlaceHolder之一內。並在Iframe中假設,IfrmPage.aspx我正在使用更新面板,其中計時器控件正在更新每個特定持續時間的頁面。在Ajax的定時器OnTick事件上滾動位置

所以,我想要做的是在OnTick事件之後將重點放在文本框上。我正在使用以下行:

ScriptManager1.SetFocus(this.txtMessage.ClientID);

這工作正常。不過,主頁或者我應該說masterpage的滾動條改變了他們討厭的位置。

請分享您寶貴的經驗。

謝謝。

回答

0

在谷歌上搜索後,我找到了答案。

現在我使用javascript設置焦點txtMessage(文本),並刪除此代碼: ScriptManager1.SetFocus(this.txtMessage.ClientID); 最終答案就在這裏:

<script type="text/javascript"> 
    var prm = Sys.WebForms.PageRequestManager.getInstance(); 
    prm.add_pageLoaded(pageLoaded); 
    function pageLoaded(sender, args) { 
     if (args.get_panelsUpdated().length > 0) { 
      $get('txtMessage').focus(); 
     } 
    } 
</script> 
0

您是否曾嘗試在IfrmPage.aspx的頁面聲明上使用MaintainScrollPositionOnPostback?

+0

不,我沒有。你可以給我發送代碼嗎? –

+0

在Google上搜索後,我找到了答案。 現在我將焦點設置爲使用JavaScript的txtMessage(textbox)並移除以下代碼:ScriptManager1.SetFocus(this.txtMessage.ClientID); 最終答案在這裏:

+0

很高興你對它進行了排序,但這是一個有用的屬性。它位於頁面頂部的頁面指令上,例如: <%@ Page MaintainScrollPositionOnPostback =「true」...%> ...但是,我不知道這是否會與ajax有關。 http://msdn.microsoft.com/en-us/library/system.web.ui.page.maintainscrollpositiononpostback.aspx – ShibbyUK