-1

ユーザーコントロールをロードする関数があります。次のようになります。

private void AddPopupControlToPage()
    {
        WidgetConfiguration popupControl = new WidgetConfiguration();
        popupControl = (WidgetConfiguration)LoadControl("~/Docking/Widgets/WidgetConfiguration.ascx");
        popupControl.ID = "PopupControlInput1";
        g_PopupControlId = popupControl.ClientID;
        popupControl.Attributes.Add("width", "150px");
        Form.Controls.Add(popupControl);
    }

選択したテンプレートに基づいてページレイアウトを変更できるドロップダウンがあります。任意のテンプレート(ページ)からポップアップコントロールを押すことができるはずです。ここで読んだ内容に基づいてhttp://msdn.microsoft.com/en-us/library/ms178472.aspxPage_PreInitイベントでコントロールをロードできるはずですが、その時点ではフォームがロードされておらず、 null参照エラーが発生します。ポップアップコントロールをロードして、選択したページで利用できるようにする方法/場所に関するアイデアはありますか?

4

1 に答える 1

2

CreateChildControlsメソッドを常にオーバーライドするコントロールをロードする必要があります

のような何か

protected override void CreateChildControls()
    {
        base.CreateChildControls();
        //now load your control here
    }
于 2012-07-31T22:50:15.057 に答える