异步__doPostBack

时间:2014-04-11 11:09:32

标签: javascript jquery asp.net webforms

要求

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

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

取消后,我们什么也没做,并且保持在同一页上

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

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

问题在于保存

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

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

但它始终显示(Panel-1) 但是在FF中,Panel-2只是提示并再次隐藏。

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

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

任何人都知道如何克服这个问题?

1 个答案:

答案 0 :(得分:0)

如果没有一些实际的代码,有点难以看到发生的事情,但据我所知,这是一个时间问题。

单击“是”时,执行回发功能并在隐藏面板后立即执行。 你的'doPostback'实际上是同步的。意思是响应稍晚(不是立即)。因此,当响应返回时,它会更新您的页面,这就是您流动的地方。

FF可能足够快,可以真实地向您展示实际发生的事情。你的隐藏功能正常,但被ajax响应覆盖。

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

以下是一些链接: - RegisterClientScriptBlock within AJAX method call

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

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

祝你好运