我的问题是关于从客户端动态生成的HTML/JavaScript调用服务器端事件(例如DeleteClicked)。我在我的网站上有一个现有的网页,它深深植根于.net。页面生命周期非常复杂,可以从页面中触发几十个事件。动态添加客户端脚本/ HTML调用服务器端事件
我们希望开始利用一些JQuery功能,并在页面已经加载后添加额外的链接和按钮。例如,我们希望在某些图像上显示一些悬停图形。小图标可以提供删除,编辑等功能。我希望将这些客户端创建的点击事件绑定到服务器端事件,而不必颠覆(或绕过)整个页面生命周期。
到目前为止,我能想到的唯一解决方案是在整个页面中植入隐藏的asp.net控件,并在客户端代码中手动强制隐藏控件上的click()。不幸的是,我不认为这是可以接受的,因为我不一定知道载入页面时可能需要调用的所有事件。我也不喜欢向客户发送大量不需要的标记。
我的问题有意义吗?任何帮助将不胜感激!
使用WebMethods的问题是它可能会改变我的页面绑定到的基础数据。如果我然后从asp.net控件中触发事件(在其他AJAX调用并命中WebMethod之后),则此事件可能无效,因为控件可能不再存在。我需要一种方式让我的动态html/javascript使用常规页面生命周期。 WebMethods是“真正的AJAX”并绕过了页面生命周期。 – jakejgordon 2009-08-12 13:05:07
如果您将'onsuccess'javascript处理程序挂接到您的web方法调用,则可以在事件通过web方法成功完成后使用javascript/jquery更新控件。你也可以挂钩失败的JavaScript处理程序,这样如果调用失败,你可以执行任何需要的清理。 – 2009-08-12 13:44:00
这可能会变得更加温暖......我能看到的唯一明显的问题是,我们基本上必须对服务器执行2个请求来处理这些操作之一 - 一个执行WebMethod操作,onsuccess我们基本上必须重新加载页面(或适当的更新面板)。 – jakejgordon 2009-08-12 14:52:31