ASP.Net按钮点击事件未触发

4
这可能与这个问题有关,但我有更多的信息。 我最近将一个ASP.Net应用程序更新到.NET 3.5,之后使用Linq编写了一些新功能。现在我的页面偶尔会停止触发事件处理程序。我已经将其缩小到具有Ajax的页面,并且我认为ScriptManager或AjaxControlToolkit注册引起了问题。非常奇怪的部分是页面大约2/3的时间似乎工作正常,而控件仅在1/3的时间内失去其事件处理程序。我想知道是否发生了某种类型的错误,导致页面未正确呈现,但我找不到证据。

你在这些 AJAX 页面上使用 Update Panel 吗? - RSolberg
有些是的,但并不是全部。 - nathaniel
7个回答

1

0

到目前为止,我只使用过Telerik Ajax控件,我的观察是如果在启用Ajax的控件中发生异常,什么也不会发生。没有异常报告,也没有任何操作。

也许你应该在没有Ajax的情况下测试你的应用程序,以确定任何问题点。


没有错误 - 如果我删除AJAX部分,一切都能正常工作。就像我之前提到的那样,大约66%的时间它仍然可以正常工作,即使Ajax库仍在标记中。 - nathaniel

0

我的初步想法是,可能发生了某种情况,导致JavaScript出错(未捕获)并中止异步回传。

如果你能在开发环境中重现这个问题,你可以尝试处理window.onerror事件,并弹出一些警告框。这样或许有助于查看可能出现错误的位置。


0

你尝试过了吗:

ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(yourButton);


0

在我看来,你似乎遇到了Update Panel的问题。

如果您正在使用多个Update Panel并且一个Panel的更新会更改其他Update Panel的数据,请定义以下Update Panel属性:

对于UpdatePanel

  1. ChildrenAsTriggers = true
  2. EnableViewState = true(如果您正在使用此功能)
  3. UpdateMode = Always

在同一页中的其他Update Panel中使用相同的属性。

如果您觉得这些信息有用,请将其标记为答案;否则请告诉我...


0

如果有,请尝试注释掉Update panel。然后尝试点击按钮,页面上必须会出现一些错误。我也遇到过类似的问题。


0
在我的情况下,没有任何事件(无论是按钮还是复选框)被触发。我通过以下方式解决了这个问题。
在我的母版页中,我关闭了一个引用外部.js文件的标签,使用/ >符号而不是< script > < / script >。
例如:将< script src='../../Scripts/common/menu.Js' type='text/javascript' / >更改为< script src='../../Scripts/common/menu.Js' type='text/javascript' > < / script > 希望这可以帮助你, Ramesh

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