Asp.net AJAX网络控制的简单方法

Asp.net AJAX网络控制的简单方法,asp.net,ajax,web-controls,Asp.net,Ajax,Web Controls,我有一个我正在尝试优化的web应用程序。一些控件隐藏在对话框样式DIVs中。因此,我希望只有当用户希望看到它们时,才通过AJAX加载它们。这对于大多数基于文字的控件(各种菜单和小部件)来说是很好的,但是当我拥有我称之为“脏”控件时——这些控件将大量信息写入视图状态,在页面上放置大量CSS或脚本,需要大量引用,等等——这些控件似乎不可能“移出页面”,特别是考虑到ASP.NET在回发时的反应 我在考虑某种步骤,覆盖渲染,为我想移出的位找到标记,并在其中放置AJAX占位符,但不仅服务器开销看起来非常大

我有一个我正在尝试优化的web应用程序。一些控件隐藏在对话框样式
DIVs
中。因此,我希望只有当用户希望看到它们时,才通过AJAX加载它们。这对于大多数基于文字的控件(各种菜单和小部件)来说是很好的,但是当我拥有我称之为“脏”控件时——这些控件将大量信息写入
视图状态
,在页面上放置大量CSS或脚本,需要大量引用,等等——这些控件似乎不可能“移出页面”,特别是考虑到ASP.NET在回发时的反应

我在考虑某种步骤,覆盖渲染,为我想移出的位找到标记,并在其中放置AJAX占位符,但不仅服务器开销看起来非常大,而且感觉像是一个彻底的黑客。此外,这里的关键元素是对话框,其中包含带有验证控件的表单,我无法想象如何移动控件及其所需脚本

在我狂热的想象中,我想这样做:

AJAXifier.AJAXify(ctlEditForm);
可悲的是,我知道这是一场梦

在不给服务器带来太多负载的情况下,我能离快速、简单的AJAXification有多远?

第一步是让“脏”部分成为独立的用户控件

第二步是将这些控件嵌入到您的消费页面中

第三步是将每个用户控件标记包装在各自的Asp:UpdatePanel中

第四步是确保控件从属性中读取所需的数据,这些属性检查viewstate中是否存在预先存在的值。我知道这会让你的代码依赖于难看的全局变量,但这是一个快速完成这项任务的方法


您的里程可能会有所不同。

从Telerik查看控件-它允许您避免使用UpdatePanel,并通过声明调用控件之间的直接关系来限制在服务器和客户端之间来回传递的信息量,以及在调用控件提交回发时应“Ajaxified”的控件

我建议你这个周末去当地的书店,喝杯咖啡,在曼宁出版社找到jQuery。在书店里阅读这本300页书的第一章,如果它能引起你的共鸣,就买下来

我想您会惊讶于jQuery是多么容易让您执行您在这里描述的内容。从在后台对服务器的ajax调用,到根据访问者的操作显示和隐藏div标记。您必须编写的代码量非常小


有很多很好的JavaScript库,这只是我喜欢的其中一个,而且很容易入门。首先,使用标记包含对当前jQuery文件的引用,然后编写几行代码与您的页面交互。

@-如果有帮助,我认为您可以为(减去订阅和源代码)授权控件集,这正是我想要的,不幸的是,它是999美元,根本不在预算之内。除非有人有更便宜的选择,否则我会把你的帖子标为答案@罗伯:我很自豪地说,在整个解决方案中没有更新面板,尽管它们和它们发送的令人难以置信的低效垃圾。试图清理脏控件的问题在于,违规者不是我的——他们是微软的!