同时进行多个异步回发-ASP.NET

5
当页面上有两个UpdatePanels,每个UpdatePanel都有一个服务器端的Button时,当我点击第一个按钮然后再点击第二个按钮并查看Firebug时,我发现第二个异步postback直到第一个完成后才被触发。
这是符合预期的吗?我的理解是,在AJAX postbacks中,按钮的事件处理程序应该同时触发。
编辑:需要帮助吗?
1个回答

3
这个模型是准确的。你可能想要使用pagemethods。
编辑:drachenstern说“终于回到我的电脑了。”
事情是这样的:UpdatePanel基本上是一个页面后台提交。它只能一次提交一个事件。该模型不理解两个同时发生的事件。因此,每次点击都是完整的后台提交。因此,直到一个完成后才开始另一个。
所以像我说的那样,这是该模型的准确行为。除了定义自己的模型之外,你真的没有太多可以改变模型的方法。你不能只是希望模型做你想要的事情,而不知道你想要发生什么。

1
我的按钮事件处理程序需要访问其他控件。PageMethods需要是静态的。 - Dave S
@DaveS ~ 我更新了我的回答。我想你可能不会喜欢我的答案。我的建议是,弄清楚如何使您的事件静态/无状态,否则我认为这将不能像您想要的那样工作。 - jcolebrand
多个部分回发可以同时触发 - 这将导致它们“互相干扰”,但这是可能且确实会发生的。需要额外的工作(即由SharePoint完成的工作)来添加一个块以防止这种“干扰”行为。 - user2864740
好的,我试图遵循天真的情况,因为这是大多数开发人员在提出这些问题时所处的情况。我可以想到一些方法来强制发生多个并发和同时事件。请不要过于苛刻,也不要因为“嘿嘿,你有点错”而投反对票。 - jcolebrand

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接