微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从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()的强力方法

原文地址:https://www.jb51.cc/aspnet/253690.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐