我在UpdateTemplate中有一个Gridview。我在四个不同的列中有四个模板字段。每个TemplateField都有一个UpdatePanel,其中包含一个控件。所有列都是可排序的,Gridview是可分页的。其中三个模板字段在UpdatePanel中有DropDowns,另一个有文本框,所有这些控件都有AutoPostBack = True。所有UpdatePanel都有UpdateMode = Conditional和ChildrenAsTriggers = false。
当我点击排序或更改页面索引并且结果未返回并再次执行时(单击排序或页面索引),当忙碌时,SelectedIndexChanged和TextChanged事件会触发某些控件。
似乎取决于我何时这样做,一些结果已刷新并且事件不会触发但有些仍然很忙,第二个Postback会停止第一个并认为值已更改并在那里触发各自的AutoPostBackt事件。当所有事件触发网格时,然后显示第一个排序或页面索引更改所期望的预期结果集。
答案 0 :(得分:1)
这里有问题吗?
您可以做的一件事是在等待第一个Ajax调用时添加“忙”显示并禁用可能导致另一个回发的控件。记住AJAX中的第一个A代表:异步。
答案 1 :(得分:1)
如果没有与您相同的复杂程度,就嵌套控件等而言,我最近有一个类似的问题:Why do unrelated (autopostback) methods get called when an Asp.Net ListBox autopostback method is invoked?我认为这可能与您的问题有关。
我的问题与ListBox autopostback
方法特别相关,并且事实上不应调用的方法实际上被调用,并且与实际更改的ListBox的SelectedIndex
有关,令我惊讶的是,因此可以通过将这些ListBox的SelectedIndex
设置为0来解决,这可以通过将我的原始问题的几个答案中所解释的解释来解决。
如果没有与您的问题完全相同,我认为我的链接问题可能有相同的原因。