0

iframe のみを含む Sitefinity ウィジェットを作成しました。

<%@ 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 サイトから 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 に答える