Виджет Sitefinity Ссылка на объект не установлена ​​для экземпляра объекта

Я создал виджет 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;
            }
        }
} 

Недавно я изменил проект с веб-сайта на веб-приложение, но это никак не повлияло на проект.

Кроме этого, я не понимаю, почему это исключение продолжает создаваться независимо от того, что я делаю.

Кто-нибудь еще знает, в чем может быть проблема?

Спасибо жак

1 ответ

Это может не работать в зависимости от типа созданного вами виджета. Это, вероятно, будет работать для обычных пользовательских элементов управления, но не для пользовательских элементов управления.

Если вы следуете документации по sitefinity, вы можете наследовать от SimpleView. Затем у вас есть доступ к вспомогательным методам получения элементов управления из шаблона. Итак, вместо этого:

ApplicationIFrame.Attributes["src"] = FrameSourceUrl;

Вы можете сделать это:

this.GetControl<HtmlControl>("ApplicationIFrame", true).Attributes["src"] = FrameSourceUrl;
Другие вопросы по тегам