2011-09-05 52 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