私はバージョン 2.7.5 (1 月 11 日リリース) を使用しているので、これは少し新しいかもしれません。
各ウィジェットはユーザー コントロールであり、WidgetContainer.ascx でホストされます。WidgetContainer は、タイトルの名前変更、配置、展開/折りたたみ、編集などのすべての一般的な機能を提供します。ソース ファイルは、ルートの "dropthings" フォルダーにあります。Init メソッドを見ると、UserControl がインスタンス化されてページに追加された場所がわかります。
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
var widget = LoadControl(this.WidgetInstance.Widget.Url); //Here's the magic
widget.ID = "Widget" + this.WidgetInstance.Id.ToString();
WidgetBodyPanel.Controls.Add(widget);
_WidgetRef = widget as IWidget;
if (_WidgetRef != null) _WidgetRef.Init(this);
}
そのため、最初に WidgetContainer が構成された各ウィジェットのコントロール ツリーに追加されます。次に、各コンテナが初期化されると、特定の UserControl が作成され、ページに追加されます。いつ
WidgetBodyPanel.Controls.Add(widget);
が呼び出されると、特定のウィジェットが初期化 (OnInit) されます。そこから、ウィジェットのコンテンツはそれ自身の手の中にあります。