【问题标题】:Auto post back on page load页面加载时自动回发
【发布时间】:2009-08-20 18:20:27
【问题描述】:

我需要在第一次加载时自动回发我的页面,并且我需要等待整个页面加载完成才能回发页面。

我在页面加载中使用

if (!IsPageWasPostBack)
      {
        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "forcePostBack", "Sys.WebForms.PageRequestManager.getInstance().add_endRequest(postBackLoading);function postBackLoading(){__doPostBack('" + this.Page.ClientID + "','');}", true);
      }

IsPageWasPostBack 是一个视图状态变量。

当我放

Sys.WebForms.PageRequestManager.getInstance().add_endRequest

我的页面不回发。如果我将其删除,则页面会成功回发,但要快。

我不想使用计时器来回拨我的帖子。

有什么想法吗?

【问题讨论】:

  • 如果您需要在第一个页面加载时进行回发,那么它的编写似乎不是很有效。这只是非常罕见的行为——为什么你不能在页面第一次加载时执行回发需要发生的事情?
  • 因为我有一个两个 iframe 一起通信,并且第一个 iframe 在第二个 iframe 客户端的隐藏中发送信息,但我需要这个信息服务器端,所以我需要在之后回发我的第二个框架第一次加载获取隐藏信息。

标签: c# asp.net javascript postback scriptmanager


【解决方案1】:

你可以使用 jquery 并使用 $(document).ready($("#myform).submit();) 或者您可以等待准备就绪,然后在您的 javascript 中设置一个计时器,以便多等几秒钟。

【讨论】:

  • 我接受这个答案,但是,我用另一种方式做,因为我的上下文不同,但这种方式可能是一个好方法。
【解决方案2】:

等待几秒钟怎么样?

$(document).ready(
   setTimeout('$("#myform).submit()',2000);
) ;

【讨论】:

  • 我试图找到另一种方法而不是使用超时,我不认为这个解决方案是干净的,因为在不同的计算机上结果可能不一样。
【解决方案3】:

您是否尝试过使用 LoadComplete 事件而不是 Load 事件?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多