如何在ASP.NET页面上使用框架?

时间:2008-12-12 23:57:56

标签: asp.net iframe

如何在asp.net页面上更正使用框架,所以我有一个左框架和一个右框架,当我点击左框架中显示的页面上的链接时,它会在右框架中加载相应的页面?除此之外,我需要在所有正确的框架页面上都有一个母版页。

我该怎么做?还是有另一种方法可以达到同样的效果?

谢谢, 射线。

4 个答案:

答案 0 :(得分:5)

烨。框架是邪恶的。你不应该真的使用它们。

它们会导致问题,但在(很少)边缘情况下,它们在开发时间方面可能有用且成本更低,它们仍会在生成的api文档中出现相当多。

但无论如何,看看你如何使用它们,我们走了

首先,这取决于你是想使用框架集,还是只是将一些iframe放入页面,iframe可能更容易,但会描述框架集。以下一些参考文献如果你在archive.org上挖掘回来的机器,你会看到一些例子,Sun的在线java文档曾经是在框架集中,但多年来都没有看过它们。

http://www.w3schools.com/tags/tag_frameset.asp
http://www.w3schools.com/tags/tag_iframe.asp

基本上,每个帧的内容都是单独的页面,并且框架本身必须在包含框架集的文件中命名,这可能看起来像这样:

<html>
<frameset cols="25%,75%">
  <frame name="_left" src="nav.aspx" />
  <frame name="_right" src="foo.aspx" />
</frameset>
</html>

因此,为了练习,请为右侧提供左框架属性name =“__ left”和name =“__ right”。

有关链接的重要信息
右框内需要定位该框架的任何链接都应该有target =“_ self”,任何需要转义框架并设置父页面位置的链接都应该有target =“_ top”。

左侧框架中的链接需要具有target =“_ right”属性,并且应该在单击链接时将相应的文档加载到右侧框架中。

其余部分非常正常,将右侧框架的内容视为普通页面,使主页面正常,所有正常的html,头部,身体标签等。框架没有什么不同在aspnet或php或其他任何东西,它只是HTML。

你有它,可能有一些我错过的东西,因为它们不是我现在经常使用的东西,但有时候,当可访问性和所有无关紧要时,它们可以很快脏修复。例如,一个网站服务网站上的一些模糊的管理页面,每年会被一个了解正在发生的事情的极客访问12次。

所以,他们是邪恶的,但这不应该阻止你了解他们,你会真正理解他们为什么是邪恶的,并形成你自己的意见,何时何地不使用它们。

答案 1 :(得分:3)

在现代网站开发中,框架通常是不受欢迎的,原因有几个(我不会在这里介绍它们)。你最好使用CSS来制作2列布局。关于如何在整个网络上制作这样的布局,有很多很好的教程。可以在这里找到一个例子:

http://www.456bereastreet.com/lab/developing_with_web_standards/csslayout/2-col/

该网站上的示例如下所示:

http://www.456bereastreet.com/lab/developing_with_web_standards/csslayout/2-col/finished.html

如果您希望布局适合屏幕,只需定义#main的高度即可。您只需在完成后将其添加到CSS中:

#main{height:600px}

如果不适合您,请将“600px”更改为您想要的任何高度。

要在母版页上使用它,只需让您的母版页按照上面的示例操作,然后将#main <div />标记的内部设为您的主要ContentPlaceholder

答案 2 :(得分:0)

简短而又甜蜜的回答?

框架和框架集在Web开发中不再是必需或有用的,它们会产生比它们解决的问题更多的问题。

更详细:

有三件事情你可能正在使用框架来帮助:

1)您希望左侧有一个导航栏,右侧有一个单独的内容区域,基本上是垂直分隔。

非框架解决方案:

使用常规HTML和CSS创建2列布局。查看其他一些资源或“The Last Guide to CSS Layout You'll Ever Need”。

2)您希望能够拥有一个带有导航的文件,而您不必在几个不同的页面上拥有该版本的文件。

非框架解决方案:

将导航保存在单独的文件中,并将其包含在所有内容页面中。在ASP.NET中,您可以创建UserControl或.ascx文件,并将其包含在所有更改中。将导航放在UserControl中,您只需要在一个地方进行更改。

3)您希望仅更快地执行需要重新加载的内容框架,而不是导航框架。

非框架解决方案:

加载整个页面的额外时间可以忽略不计,并且一次提供单个文档的简单性足以弥补微小的性能损失。

答案 3 :(得分:0)

您可以将iframe代码放在body部分。下面给出一个例子。试试这个:)

<iframe width="100%" height="600px" scrolling="no" seamless="yes" src="https://facebook.com"></iframe>