我有我想象的非常标准的网络界面。

有4种不同的ListView(网格控件),可通过顶部的一系列Tab进行访问。

我已经实现了如下:

替代文字http://img402.imageshack.us/img402/1530/pagedu8 .JPG

选项卡1会将包含网格1的第1页加载到第2帧,第2选项卡将第2页包含网格2加载到第2帧等。

然而,这意味着如果您单击网格中的某个项目,并将DetailsPage1.aspx加载到第2帧,则第1帧和选项卡仍然可见且处于活动状态。

我被告知我应该只有一个Frame,并根据选项卡点击动态加载Pages,使用HttpRequest(或asp.net中的WebRequest)。

这是正确的方法吗?如果您手头有任何资源或提示,我们将不胜感激!

由于

有帮助吗?

解决方案

框架绝对禁止。使用其他技术无法实现的帧没有任何好处。

这是否意味着您必须使用AJAX?不必要。如果您觉得需要提供丰富,无缝的界面,AJAX是一个非常好的解决方案,但并非绝对必要。

您可以使用服务器端包含将选项卡分成另一个(通用)子页面,但是由于您提到ASP.NET(假设您在框架v2或更高版本上运行),您可能希望使用母版页,您的标签位于一个内容部分或主文件中,您的网格/详细信息位于另一个内容部分。

这两种技术的关键区别在于使用AJAX,从tab到tab的转换将是光滑无缝的,但是a)需要一些额外的工作(特别是如果你不熟悉任何给出的AJAX框架)和b )因为你基本上将4个页面合并为一个页面,所以页面“更重”并且维护起来更复杂。如果您选择非AJAX路由,那么关键的区别在于,当您单击每个选项卡时会有一个小但不同的刷新效果(因为它每次都会加载一个新页面)。

当然,无论如何,母版页对于维护一致的网站样式和结构非常有用,因此没有理由不将AJAX用于母版页系统。

其他提示

框架是蹩脚的:如果用户想要设置书签以及用户是否通过谷歌访问您的网站,您将遇到问题:然后您的导航框架不可见。所以你需要很多脏javascript。检查这个。如果您需要javascript,请从一开始就使用AJAX

Ajax是最好的选择。但请记住,通过后退/前进使其可浏览。最好的选择是更改页面哈希。我使用过这样的东西:

第一个标签的

domain.com/#tab1 domain.com/#tab2 for second tab

等等。

如果你使用jQuery,这个可能是一个好的开始(我使用它,我有没问题)。我确信所有流行的框架都有一个解决方案:)

您应该只在所有其他页面中包含导航页面,而不是使用框架。浏览器会看到您在所有页面中包含相同的文档并对其进行缓存。

您是否尝试过 TabContainer 或加载所有4细节窗格和选项卡选择更改时只显示/隐藏面板?

根据用户将看到的屏幕,如果您动态加载详细信息视图(Ajax或回发),您可能无法保留用户输入的任何信息,并且您将等待(用户不想等待)

我建议使用jQuery和jQuery UI插件。不需要任何框架,只需要div容器。

像StingyJack一样,我建议你看一下 TabContainer 控制,但是如果你这样做,你可能要注意你的ViewState不要太大。

因此,例如,在查看Tab之前不要将任何内容加载到GridView中,如果不是,则删除它内容(如果需要,保存回数据库。使用TabContainer的ActiveTabChanged事件将是关键策略。你为网格调整了ViewState,但是为容器留下了它。

你正在使用ASP.NET,所以只需将所有4个控件加载到mutliview中,然后在回发时将可见的控件设置为点击过的按钮。

http://msdn.microsoft的.com / EN-US /库/ system.web.ui.webcontrols.multiview.aspx

请勿使用框架(或iframe),除非您绝对必须......

我能想到使用(i)帧的唯一正当理由实际上是文件上传控件,我不确定它是否有效......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top