【问题标题】:Loading user control one by one in aspx page在aspx页面中一一加载用户控件
【发布时间】:2013-10-30 00:05:14
【问题描述】:

我在单个 .aspx 页面中有多个用户控件我想使用 c# 一个一个地加载用户控件。这是否可以加载像延迟加载这样的用户控件。(一个控件应该先加载,然后其他控件才会开始加载,依此类推..)

【问题讨论】:

  • 你想要哪一部分代码@ManojPilania 我的问题很简单我想加载一个 UC - A 加载后我想加载 B 等等......(我正在使用 asp .Net 3.0)
  • 这是正常触发用户控件加载事件的方式...

标签: c# asp.net


【解决方案1】:

您可以像在此 MSDN 页面上描述的那样操作控件: http://msdn.microsoft.com/en-us/library/kyt0fzt1.ASPX 您可以使用 Page.Controls.Add 方法。但我不确定你想要达到什么目的。因为您不能“跳过”页面/控件生命周期。这意味着您可以在 PreInit 事件中按顺序添加所有控件,但每个控件都有自己的 Load、Render 和其他控件事件。

【讨论】:

  • 感谢@Perevalov 的回答,我想按顺序加载它的原因是每个控件都有大量数据影响页面的性能。所以我想让UC一个接一个地加载。
  • 但它不会给您带来任何性能优势。由于所有内容都在服务器上处理,因此在处理完所有控件之前,客户端将不会在浏览器中看到任何内容。
  • 如果您想提高页面的性能并且无法优化每个控件,请尝试将您的页面拆分为更小一些。每个页面将只包含一些您的繁重控件。尝试查看 AjaxControlToolkit asp.net/ajaxlibrary/ajaxcontroltoolkitsamplesite/tabs/tabs.aspx 中的 Tabs 组件及其 OnDemand 功能。它不是完美的,但在 WebForms 中实现它的最快方式。
  • 我无法将控件放入 Tab @perevalov 场景是我在每个用户控件中都有图表,并且页面是我的仪表板页面 onclick of submit button 它会加载其中的图表用户控件,所以我想加载一个 UC 而不是另一个,以便页面快速呈现。
【解决方案2】:

用户控件可以使用LoadControl method动态加载 页面上的所有控件都必须经过 ASP.NET 页面生命周期流程。延迟加载是什么意思?

【讨论】:

  • 延迟加载意味着我想在滚动时一个接一个地加载控件。
  • 当然。在这种情况下,它可以通过 AJAX 通过检测浏览器事件来完成。 Render the usercontrol as HTML string 并在 AJAX 响应中返回以显示在 UI 上。但我怀疑你是否真的想这样做。
猜你喜欢
  • 2018-09-08
  • 2014-11-13
  • 2013-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多