这可能与这个问题有关,但我有更多的信息。 我最近将一个ASP.Net应用程序更新到.NET 3.5,之后使用Linq编写了一些新功能。现在我的页面偶尔会停止触发事件处理程序。我已经将其缩小到具有Ajax的页面,并且我认为ScriptManager或AjaxControlToolkit注册引起了问题。非常奇怪的部分是页面大约2/3的时间似乎工作正常,而控件仅在1/3的时间内失去其事件处理程序。我想知道是否发生了某种类型的错误,导致页面未正确呈现,但我找不到证据。
到目前为止,我只使用过Telerik Ajax控件,我的观察是如果在启用Ajax的控件中发生异常,什么也不会发生。没有异常报告,也没有任何操作。
也许你应该在没有Ajax的情况下测试你的应用程序,以确定任何问题点。
我的初步想法是,可能发生了某种情况,导致JavaScript出错(未捕获)并中止异步回传。
如果你能在开发环境中重现这个问题,你可以尝试处理window.onerror事件,并弹出一些警告框。这样或许有助于查看可能出现错误的位置。
你尝试过了吗:
ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(yourButton);
在我看来,你似乎遇到了Update Panel的问题。
如果您正在使用多个Update Panel并且一个Panel的更新会更改其他Update Panel的数据,请定义以下Update Panel属性:
对于UpdatePanel
在同一页中的其他Update Panel中使用相同的属性。
如果您觉得这些信息有用,请将其标记为答案;否则请告诉我...
如果有,请尝试注释掉Update panel。然后尝试点击按钮,页面上必须会出现一些错误。我也遇到过类似的问题。