如何在asp.net页面上更正使用框架,所以我有一个左框架和一个右框架,当我点击左框架中显示的页面上的链接时,它会在右框架中加载相应的页面?除此之外,我需要在所有正确的框架页面上都有一个母版页。
我该怎么做?还是有另一种方法可以达到同样的效果?
谢谢, 射线。
答案 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>