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

时间:2009-04-24 15:58:17

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

这可能与this question有关,但我的信息稍多。

我最近在使用Linq编写了一些新内容后,将ASP.Net应用程序更新为.NET 3.5。现在我的页面间歇性地停止触发事件处理程序。我把它缩小到使用Ajax的页面,我认为它是ScriptManager或AjaxControlToolkit注册引起的问题。

真正棘手的部分是页面似乎在大约2/3的时间内正常工作,并且控件在1/3的时间内失去了它们的事件处理程序。我想知道发生了某种类型的错误并且页面没有正确呈现,但我找不到这方面的证据。

7 个答案:

答案 0 :(得分:1)

我们确实遇到了这个问题,正如您所说的那样,它只在某些时间发生,并且仅在具有Ajax请求的页面上发生。我们发现在答案中建议禁用HTTP Keep-Alive Why does Internet Explorer not send HTTP post body on Ajax call after failure?工作了。

可以按照How to configure HTTP KEEP-ALIVE in IIS 7

中的说明在IIS7中完成此操作

答案 1 :(得分:0)

到目前为止我只使用了Telerik Ajax控件,我的观察是如果在启用Ajax的控件中出现异常,则没有任何反应。没有例外报告,没有行动。什么都没有。

也许您应该在没有ajax的情况下测试应用程序来识别任何问题点

答案 2 :(得分:0)

我最初的想法是,javascript错误输出(未捕获)并中止异步回发。

如果您可以在开发环境中实现此目的,您可能需要尝试错误处理window.onerror事件并抛出一些警告框。可能有助于查看可能发生的错误。

答案 3 :(得分:0)

你试过了吗?

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

答案 4 :(得分:0)

尝试注释掉“更新”面板(如果有)。然后尝试单击按钮,页面上必定有一些错误。我也遇到过类似的问题。

答案 5 :(得分:0)

在我看来,你有更新面板的问题。

如果您使用多个更新面板并且更新一个面板更改其他更新面板的数据,请定义更新面板的以下属性。

对于UpdatePanel

  1. ChildrenAsTriggers = true
  2. EnableViewState = true(如果您使用此功能)
  3. UpdateMode =始终
  4. 在同一页面中为其他更新面板使用相同的属性。

    如果您发现它有用,请将其标记为您的答案,否则请告诉我....

答案 6 :(得分:0)

在我的情况下,没有任何事件(按钮或复选框)被触发。我能够通过以下方式解决这个问题。

在我的母版页中,我关闭了一个标记,指的是带有/&gt;的外部.js文件。符号而不是<script></script>

for Ex:chanage <script src='../../Scripts/common/menu.Js' type='text/javascript' /> to <script src='../../Scripts/common/menu.Js' type='text/javascript' ></script>

希望这会对你有所帮助, 拉梅什