【问题标题】:problem loading page in iframe in c#在 c# 中的 iframe 中加载页面的问题
【发布时间】:2011-11-23 12:38:29
【问题描述】:

我遇到了与this question 相同的问题。

我正在使用下面的代码

<td>
  <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="test.aspx">Add Hotel Detail</asp:HyperLink>
</td>
<td>
  <iframe id="frame1" style="height:800px; width:900px;" src="AdminControlPanel.aspx">
  </iframe>
</td>

但是&lt;asp:HyperLink&gt;,Target 属性没有显示框架ID

【问题讨论】:

    标签: asp.net iframe


    【解决方案1】:

    确实可以通过在target属性中设置框架名称来打开一个命名框架中的指定url。见:HTML target Attribute

    <td>
        <asp:HyperLink ID="HyperLink1" runat="server" Target="frame1" NavigateUrl="http://...">
            Add Hotel Detail
        </asp:HyperLink>
    </td>
    <td>
        <iframe name="frame1" id="frame1" style="height:800px; width:900px;" src="AdminControlPanel.aspx">
        </iframe>
    </td>
    

    【讨论】:

    • iframe 的src 中应该有什么?在超链接->目标中,我没有得到frame1 的名称,只有_blank,_top,_search,_parent
    • 我猜 Visual Studio 或您使用的任何开发环境不提供该功能。无论哪种方式,它都是有效的 HTML。关于 iframe src,您应该将其设置为您希望在页面加载时显示的任何 url。
    • 诀窍很简单,并不明显。必须设置框架的 'name' 属性,而不是 'id' 属性。那么超链接的“目标”属性必须与框架“名称”相同。然后它将起作用。上面的例子有 target="frame1" 和 name="Iframe1" 所以它不会工作。改变一个或另一个,使它们都相同。此外,由于未知原因,Visual Web Developer 智能感知不会将“名称”显示为有效的 iframe 属性。
    【解决方案2】:

    如果您想将代码嵌入页面但将其分离出来,请考虑将 iframe 的内容移动到 UserControl

    这将让您创建一个可重用的控件,您可以将其拖放到页面上。您可以使用Public Properties将数据传递到UserControl,也可以设置自定义Events,以便外部页面可以在内部发生事件时订阅和接收信息。

    有一个小的学习曲线,但一旦你了解它就会非常有用。

    【讨论】:

      猜你喜欢
      • 2013-01-13
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 2012-12-24
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多