【问题标题】:How do I use frame on ASP.NET page?如何在 ASP.NET 页面上使用框架?
【发布时间】:2008-12-12 23:57:56
【问题描述】:

你如何在asp.net页面上正确使用框架,所以我有一个左框架和一个右框架,当我点击左框架中呈现的页面上的链接时,它会在右框架中加载相应的页面?最重要的是,我需要在所有正确框架的页面上都有一个母版页。

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

谢谢, 雷。

【问题讨论】:

    标签: asp.net iframe


    【解决方案1】:

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

    它们会导致问题,但在(非常)少数极端情况下,它们可能有用且在开发时间方面更便宜,它们仍然大量出现在生成的 api 文档中。

    但不管怎样,看你问如何使用它们,我们开始吧

    首先,这取决于您是要使用框架集,还是只是将一些 iframe 放入页面中,iframe 可能更容易,但会描述一个框架集。下面的一些参考资料。如果您在archive.org 上搜索wayback machine,您会看到一些示例,还有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、head、body 标签等。框架没有什么不同在 aspnet 或 php 或其他任何东西中,它只是 html。

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

    因此,它们是邪恶的,但这不应该阻止您了解它们,您将真正了解它们为什么是邪恶的,并就何时以及何时不使用它们形成您自己的看法。

    【讨论】:

      【解决方案2】:

      框架在现代 Web 开发中通常不受欢迎,原因有几个(我不会在这里讨论)。你最好使用 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 &lt;div /&gt; 标记的内部作为主要的 ContentPlaceholder

      【讨论】:

      • 使用 CSS div 2 列布局我无法弄清楚的一件事是,如何让列的高度在浏览器中完全正确?
      • 这其实是一个很常见的问题。解决方案稍微高级一点,但可以解决。去这里看看如何:alistapart.com/articles/fauxcolumns
      • 对假 bg 图像赞不绝口。多年前我就认出了那个链接,这很遗憾吗?
      【解决方案3】:

      简短而甜蜜的答案?

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

      更详细:

      您可能会使用框架来帮助完成三件事:

      1)你想左边有一个导航栏,右边有一个单独的内容区域,基本上是垂直分隔的。

      非框架解决方案:

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

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

      非框架解决方案:

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

      3) 您希望只有需要重新加载的内容框架而不是导航框架的性能更快。

      非框架解决方案:

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 2011-07-30
          • 1970-01-01
          • 2022-11-10
          • 2015-06-26
          • 2014-04-22
          • 2023-03-18
          • 1970-01-01
          • 1970-01-01
          • 2017-03-12
          相关资源
          最近更新 更多