我正在try 从代码隐藏的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.


Update 1

查看呈现的html:

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

我try 将代码更改为:

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

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

但这没用.

我正在使用母版页.


Update 2

将aspx文件更改为:

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

也帮不上忙


Answer

答案是显而易见的,甚至不值得提出最初的问题.如果您有aspx代码:

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

要从代码隐藏文件访问iframe,只需访问它:

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

推荐答案

如果iframe直接位于代码运行的页面上,那么您应该能够直接引用它:


contentPanel1.Attribute = value;

如果不是(它位于子控件或母版页中),则需要了解页面的层次 struct ...或者使用蛮力方法编写FindControl()的递归版本.

Asp.net相关问答推荐

如何在现有数据库中创建 ASP.Net Identity 表?

如何在 ASP.NET 中以 'YYYY-MM-DD' 格式获取当前日期?

如何调试 Azure 500 内部服务器错误

ASP.NET 如何将控件呈现为 HTML?

MSCharts找不到请求类型'GET'的http处理程序错误

VS2013发布Web部署任务失败文件正在使用中

等待本地主机,永远!

如何在txt文件中保存异常?

Webapi、Webhost和Owin的关系

返回 IHttpActionResult vs IEnumerable vs IQueryable

回发后动态创建的控件丢失数据

如何验证文件上传的文件类型?

如何找出我的 Windows 域上托管 LDAP 的服务器?

在 ASP.NET 中使用 Messenger Connect 客户端库时出现 Javascript 错误

ASP.NET 元:资源键

当.NET抛出WebException((400)错误请求)时如何处理WebResponse?

会员生成密码 仅限字母数字密码?

C# - 将图像输出到响应输出流给出 GDI+ 错误

Windows 身份验证在本地 IIS 7.5 上不起作用.错误 401.1

Session.Clear() 与 Session.RemoveAll()