是否可以在asp.net webforms的每个AJAX-postback之前进行AJAX回调?

时间:2010-10-06 10:56:41

标签: asp.net ajax asp.net-ajax

简而言之:

每当发生回发(由UpdatePanel进行AJAX)时,我想事先进行回调,并且只有在回调完成后(成功与否)才会发生回发。我怎么能这样做?

精心解释:

我们将ASP.NET AJAX(UpdatePanel'n stuff)与DevExpress控件一起使用。其中包括无处不在的GridView。与ASP.NET网格视图一样,您可以逐个编辑行,并保存更改,您必须点击行末的“更新”按钮。但是,如果对行进行一些更改,则忘记按“更新”按钮,然后点击页面中的其他内容(比如导致回发的大红色SAVE按钮并将整个表单保存到数据库中),您的更改会迷路。该行仍将处于编辑模式,但它将重置为您开始编辑时最初的数据。

我们的客户不满意,并希望自动保存行,如果用户自己忘了这样做。

幸运的是,DevExpress gridview足够聪明,可以使用“Update()”方法,我可以通过JavaScript调用它。不幸的是,这会导致回调并立即返回。如果我允许回发正常继续,则回调将被中止。好吧,从技术上来说,这是一个竞争条件,我猜,但到目前为止似乎回发获胜。有些事件我可以附加回调成功/失败,但我不知道如何“恢复”启动它的回发。

我们可以关闭所有网格的回调,但那将是一场性能灾难。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

使用DevExpress GridViews模式弹出窗口进行编辑。这样,在编辑完成之前,他们无法按任何其他内容来触发回发。

ASPxGridView有一个客户端方法IsEditing()。单击“大红色SAVE按钮”时检查此值,如果网格处于编辑模式,则阻止回发或显示消息。