简单的方法来AJAX WebControls

我有一个我试图优化的Web应用程序。某些控件隐藏在对话式 DIVs 中。所以,我希望只有当用户想要看到它们时,才能通过AJAX加载它们。这是罚款,这大多是基于文本的控件(各种菜单和窗口小部件),但是当我有我所谓的“脏”的控制 - 那些编写大量的信息到的ViewState </代码>,把吨的CSS或网页上的脚本,需要大量的引用等 - 这些都是看似不可能移动“出页面”,特别是考虑到ASP.NET如何在回发反应。

我正在考虑某种步骤,我重写Render,找到我想要移出的位的标记,并将AJAX占位符放在那里,但不仅服务器开销看起来极端,它也感觉像是一个彻头彻尾的黑客。此外,这里的关键元素是包含带有验证控件的表单的对话框,我无法想象如何移动控件所需的脚本。

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

AJAXifier.AJAXify(ctlEditForm);

可悲的是,我知道这是一个梦想。

我能真正接近一个快速简单的AJAX化,而不会在服务器上造成太多负载?

0
额外 编辑
意见: 1
@ tags2k - 如果有帮助,我认为您可以授权控制集 $ 799 (减订阅和源代码)
额外 作者 Yaakov Ellis,

3 答案

第一步是让你的“脏”的东西自成体系的用户控制

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

第三步是将每个用户控件标签包装在他们自己的Asp:UpdatePanel中

第四步是确保您的控件通过读取从视图状态检查预先存在的值的属性来获取所需的数据。我知道这会让你的代码依赖丑陋的全局变量,但这是完成这个任务的快速方法。

你的旅费可能会改变。

0
额外

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

0
额外
这正是我想要的,不幸的是这是999美元,而且根本不在预算中。除非有更便宜的选择,否则我会将您的帖子标记为答案! @Rob:我很自豪地说在整个解决方案中没有UpdatePanel,尽管他们和他们发送的令人难以置信的低效率。试图清理肮脏的控件的问题是,罪犯不是我的 - 他们是微软的!
额外 作者 tags2k,

我建议你在本周末前往当地的书店购买一杯咖啡,并在Manning Press的行动中找到jQuery。继续阅读店内这本300页书的第一章,如果它与你共鸣,那就购买它。

我想你会被jQuery容易让你执行你在这里描述的东西感到惊讶。从ajax调用到后台的服务器,根据访问者的行为来显示和隐藏div标签。您必须编写的代码量非常小。

有一堆优秀的JavaScript库,这只是我喜欢的其中一个,而且它很容易上手。首先包含对带有标记的当前jQuery文件的引用,然后编写几行代码与页面进行交互。

0
额外