【问题标题】:How to hold server side event until client side event finishes?如何在客户端事件完成之前保持服务器端事件?
【发布时间】:2012-05-16 14:00:11
【问题描述】:

我在 UpdatePanel 中有一个 MenuItem。 MenuItem 上附加了 2 个事件:onClientClickonClick

我在 onClientClick 事件处理程序中填充了一些隐藏字段。我正在从服务器端 onClick 内的隐藏字段中获取值。

问题在于这两个事件都是独立触发的。这就是服务器端代码没有从隐藏字段中获取值的原因——因为它还没有被填充。

如何将服务器端事件推迟到客户端操作完成?

【问题讨论】:

  • 您如何称呼您的onClientClick 事件,也许在电话中使用return 可能会有所帮助。
  • 我刚才提到了onClientClick中的函数名,并且在脚本标签中定义了该函数。我没有返回任何价值。你能告诉我返回值对我有什么帮助吗?

标签: c# javascript asp.net ajax updatepanel


【解决方案1】:

如果您想先执行 onClientClick 然后从服务器端执行 OnClick,您可以尝试以下行。

  • 从代码中移除 onClick 服务器事件。
  • 在针对onClientClick 指定的javascript 方法中,您可以在方法结束时调用服务器事件。像 __doPostBack("yourmenu", "itemclicked");

Check out Calling ASP.NET server-side events using JavaScript

【讨论】:

  • 已经试过了。它有效,但不幸的是我不知道为什么如果我以这种方式发回页面,隐藏字段中的值就会消失。
  • @ManasSaha 也许隐藏字段没有与 Ajax 请求一起回发?它在 UpdatePanel 内吗?
猜你喜欢
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-29
  • 1970-01-01
  • 2015-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多