【问题标题】:How to load a web page into another web page如何将一个网页加载到另一个网页
【发布时间】:2012-11-19 18:13:54
【问题描述】:

我希望能够将网页(带有许多 asp:controls)加载到我的主 Web 应用程序的面板中。基本上从用户菜单中,将加载相应的网页。到目前为止,我已经尝试了以下...

  1. IFrame - 这不会保留控件的视图状态
  2. 创建动态控件而不是网页,但由于需要在回发时重新创建每个控件,因此速度非常慢。

有没有合理的方法来做到这一点?

【问题讨论】:

  • 您是否需要在另一个页面中加载完整页面,或者您是否尝试进行部分页面发布/获取?即用户点击一个按钮,只有部分页面被更新? (类似于 cmets 在 SO 上的工作方式)
  • @KenHenderson 理想情况下,我想加载 WebUserControl 或 WebPage.aspx 及其后面的代码。页面基本上包含一组随机控件(10 到 100 个)。

标签: asp.net visual-studio-2010 web-applications


【解决方案1】:

我假设您正在根据问题中的控件细节使用 ASP.NET Web 表单。

根据您的描述,您似乎想将UpdatePanel 控件添加到当前页面。更新面板可以托管您的自定义 UserControl,这很可能有助于提高页面响应能力(通常这是 TreeView 控件所做的)。

话虽如此,除非您的动态控件的数据源很慢(或 Web 服务器过载),否则一百个动态控件不应该扼杀您的页面呈现时间。我已经编写了针对 SharePoint 实例使用超过 100 个动态控件的页面,并且响应速度相当快。请记住,所有服务器端控件都是创建、加载、渲染的类实例(跳过了一堆 lifecycle 事件,但你明白了)。

【讨论】:

  • 是的,Asp.Net 是正确的。我有回发时间的问题。当我使用 Ajax 组合框并拥有许多控件(100 多个)时,回发需要 10 秒以上的时间。你有一些例子可以分享吗?
  • @tszoro,链接页面上有如何使用 UpdatePanel 的示例。我的建议是分析您的页面性能并找出导致问题的原因,这是一个包含一些分析建议的链接,blogs.msdn.com/b/synergist/archive/2007/12/03/…,其他链接很容易在搜索引擎上搜索asp.net page profiling
猜你喜欢
  • 2014-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 2017-08-05
相关资源
最近更新 更多