【问题标题】:asynchronous __doPostBack异步 __doPostBack
【发布时间】:2014-04-11 11:09:32
【问题描述】:

要求

在用户控件中(在单个更新面板中)- 用户将更改一些数据并单击保存按钮以外的按钮或链接按钮

我们向用户提示对话框(是/否/取消)

取消后我们什么也没做,留在同一页面上

在否 - 我们在不保存数据的情况下进一步重定向/处理。

在保存时,我们必须保存更改并进一步重定向/处理。

这里的问题在于保存

我们在页面上有不同的面板(在用户控件上相同)

在选择是时,这里我们调用“_doPostBack”来保存按钮单击事件(工作正常),并且在保存回发下面的相同 javascript 函数中调用其他“_doPostBack”来隐藏当前面板( Panel-1) 并显示另一个 (Panel-2) 和服务器端进程。

但它总是显示(面板 1) 然而在 FF 中,Panel-2 只是再次提示和隐藏。

编辑:隐藏面板位于服务器端,因为有多个按钮可以显示/隐藏面板。

预期结果是:保存数据后,显示 Panel-2 并隐藏 Panel-1

谁能知道如何克服这个问题?

【问题讨论】:

  • 你有没有试过通过电话修好你的车,而不把它展示给你的机械师?同样的事情,如果我们看不到任何代码,调试一些代码总是很困难......

标签: javascript jquery asp.net webforms


【解决方案1】:

如果没有一些实际代码,很难看出发生了什么,但据我了解,这是时间问题。

当您单击“是”时,您将执行回发功能并在您隐藏面板后立即执行。 您的“doPostback”实际上是异步的。这意味着响应会稍晚一点(不是立即)。因此,当响应返回时,它会更新您的页面,这就是您的流程中断的地方。

FF 可能足够快,可以实际向您展示真正发生的事情。你的 hide 函数工作正常,但被 ajax 响应覆盖。

我建议您使用来自服务器的响应异步隐藏面板。

这里有一些链接: - RegisterClientScriptBlock within AJAX method call

RegisterStartupScript doesn't work with ScriptManager,Updatepanel. Why is that?

我希望这可以帮助您走上正轨。

祝你好运

【讨论】:

    猜你喜欢
    • 2012-01-27
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 2023-03-12
    • 2011-08-11
    • 2011-09-15
    • 2011-04-05
    相关资源
    最近更新 更多