从jQuery/Javascript动态加载服务器控件的最佳方式

Best way of dynamically loading server controls from jQuery/Javascript

本文关键字:服务器控件 最佳 方式 加载 动态 jQuery Javascript      更新时间:2023-09-26

我在这里看到了一些类似的问题,但没有明确的答案。

我正在寻找从客户端脚本(可能是jQuery)加载asp.net服务器控件(或用户控件)的最佳方法。我正在创建一个小仪表板,将具有多个控件/控件创建作为客户端脚本调用的结果和控件将需要能够运行服务器端功能,而不仅仅是简单的信息显示控件。

我最近做了一些类似的事情,加载details控件,通过jQuery $.get()HttpHandler呈现,并将控件的结果HTML注入DIV区域-然而,这些使用自定义无表单页面作为临时占位符,以不干扰页面上当前的视图状态/呈现周期,因此他们只能使用HTML元素,如超链接等。

这是不同的,我正在寻找最好的方法来加载控件,这将作为如果他们在页面生命周期的开始注册到页面,因为我希望控件能够运行自己的服务器端方法/事件(一些过滤等)。

我看到一些人说你应该使用UpdatePanel's来完成这个,并在服务器端进行处理——但我不愿意这样做,因为其中一个要求与使用客户端脚本密切相关。

我对此进行了一些实验,感觉服务器端控件的asp.net有状态行为在涉及到这样的事情时确实受到了限制。

如果它是一个简单的对话框,如登录用户名和密码,我可以建议你做一个页面方法或一个ashx处理程序,javascript可以与之通信,然后只是建立所有的标记+服务器通信与客户端脚本。

但是既然你正在构建一个更复杂的解决方案,我会给你别人已经建议过的建议:使用UpdatePanels。

你总是可以连接在postBack(显示服务器端控件)被触发之前运行的客户端脚本,这个客户端脚本可以控制postBack是否应该被触发等等。您还可以使代码的服务器端在呈现后调用客户端脚本。

这样的东西让你真正欣赏asp.net MVC