如何从ASP.NET中的代码隐藏文件访问IFRAME?

前端之家收集整理的这篇文章主要介绍了如何从ASP.NET中的代码隐藏文件访问IFRAME?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试从代码隐藏的aspx.cs文件中为IFRAME html控件设置属性

我遇到了一个post,说你可以使用FindControl找到非asp控件使用:

aspx文件包含:

<iframe id="contentPanel1" runat="server" />

然后代码隐藏文件包含:

protected void Page_Load(object sender,EventArgs e)
{
    HtmlControl contentPanel1 = (HtmlControl)this.FindControl("contentPanel1");
    if (contentPanel1 != null)
        contentPanel1.Attributes["src"] = "http://www.stackoverflow.com";

}

除了没有找到控件,contentPanel1为null。

更新1

看看渲染的html:

<iframe id="ctl00_ContentPlaceHolder1_contentPanel1"></iframe>

我尝试将代码替换为:

HtmlControl contentPanel1 = (HtmlControl)this.FindControl("ctl00_ContentPlaceHolder1_contentPanel1");

if (contentPanel1 != null)
    contentPanel1.Attributes["src"] = "http://www.clis.com";

但它没有帮助。

我正在使用MasterPage。

更新2

将aspx文件更改为:

<iframe id="contentPanel1" name="contentPanel1" runat="server" />

也没有帮助

回答

答案是显而易见的,不值得甚至提出原来的问题。如果你有aspx代码

<iframe id="contentPanel1" runat="server" />

并希望从代码隐藏文件访问iframe,您只需访问它:

this.contentPanel1.Attributes["src"] = "http://www.stackoverflow.com";

解决方法

如果iframe直接在代码运行的页面上,那么您应该可以直接引用它:
contentPanel1.Attribute = value;

如果没有(它在一个子控件或MasterPage中),则需要了解页面层次结构的一个好主意。或者使用编写递归版本的FindControl()的强力方法

猜你在找的asp.Net相关文章