0

我创建了一个 Sitefinity 小部件,其中只有和 iframe。

<%@ Control Language="C#" AutoEventWireup="True" CodeBehind="ApplicationFrame.ascx.cs"
Inherits="MyProject.Web.Ui.Customized.EmbeddedApplications.ApplicationFrame" %>

<iframe runat="server" id="ApplicationIFrame" height="250" width="250" scrolling="no" frameborder="0" seamless="seamless" src=""></iframe>

在小部件的 Page_Load 中,我尝试访问服务器端 iframe 的任何属性,但我总是得到“对象引用未设置为对象的实例”。

这是C#

namespace MyProject.Web.Ui.Customized.EmbeddedApplications
{
        [ControlDesigner(typeof(ApplicationFrameDesigner))]
        public partial class ApplicationFrame : System.Web.UI.UserControl
        {
            public string FrameSourceUrl {get;set;}
            public string FrameHeight { get; set; }
            public string FrameWidth { get; set; }
            protected void Page_Load(object sender, EventArgs e)
            {
                //set the values of the iframe to the current properties
                ApplicationIFrame.Attributes["src"] = FrameSourceUrl;
                ApplicationIFrame.Attributes["height"] = FrameHeight;
                ApplicationIFrame.Attributes["width"] = FrameWidth;
            }
        }
} 

我最近将项目从网站更改为 Web 应用程序,但这似乎并没有以任何方式影响项目。

除此之外,我不明白为什么无论我做什么都会抛出这个异常。

其他人知道问题可能是什么吗?

谢谢, 雅克

4

1 回答 1

0

根据您创建的小部件的类型,这可能不起作用。它可能适用于普通用户控件,但不适用于自定义控件。

如果您遵循 sitefinity 文档,则可以从 SimpleView 继承。然后,您可以访问用于从模板中检索控件的辅助方法。所以代替这个:

ApplicationIFrame.Attributes["src"] = FrameSourceUrl;

你可以这样做:

this.GetControl<HtmlControl>("ApplicationIFrame", true).Attributes["src"] = FrameSourceUrl;
于 2013-08-29T14:20:58.960 回答