Tôi đang cố gắng đặt thuộc tính cho điều khiển html IFRAME từ tệp aspx.cs mã phía sau.Làm cách nào để truy cập IFRAME từ tệp codebehind trong ASP.NET?
Tôi đã xem qua một post nói rằng bạn có thể sử dụng FindControl để tìm các điều khiển phi asp sử dụng:
Các tập tin aspx chứa:
<iframe id="contentPanel1" runat="server" />
và sau đó là code-behind tập tin chứa:
protected void Page_Load(object sender, EventArgs e)
{
HtmlControl contentPanel1 = (HtmlControl)this.FindControl("contentPanel1");
if (contentPanel1 != null)
contentPanel1.Attributes["src"] = "http://www.stackoverflow.com";
}
Ngoại trừ việc không tìm thấy điều khiển, contentPanel1 rỗng.
Cập nhật 1
Nhìn vào html hiển thị:
<iframe id="ctl00_ContentPlaceHolder1_contentPanel1"></iframe>
tôi đã cố gắng thay đổi mã-đằng sau để:
HtmlControl contentPanel1 = (HtmlControl)this.FindControl("ctl00_ContentPlaceHolder1_contentPanel1");
if (contentPanel1 != null)
contentPanel1.Attributes["src"] = "http://www.clis.com";
Nhưng nó đã không giúp đỡ .
tôi đang sử dụng MasterPage.
Cập nhật 2
Thay đổi tập tin aspx để:
<iframe id="contentPanel1" name="contentPanel1" runat="server" />
cũng không giúp
trả lời
Câu trả lời là hiển nhiên và không đáng tin cậy ngay cả khi đặt câu hỏi gốc. Nếu bạn có mã aspx:
<iframe id="contentPanel1" runat="server" />
và muốn truy cập vào iframe từ code-behind file, bạn chỉ cần truy cập vào nó:
this.contentPanel1.Attributes["src"] = "http://www.stackoverflow.com";
Bạn đang sử dụng trang chính? –
Tại sao có, tôi có. –
Nhìn vào HTML được hiển thị (nguồn xem) và tìm id được hiển thị của iFrame. Sử dụng điều đó trong mã của bạn. Chúng tôi có thể xóa nó sau này, nhưng chỉ cần thử điều đó. –