0

ドロップシング ポータルを見始めましたが、ウィジェット内のコンテンツがどのようにロードされるのかわかりません。私の理解では、ヘッダーは Updatepanel にあり、ウィジェットの本体は ASP パネルを含む UpdatePanel にあります。ページがロードされると、パネル内のユーザー コントロールをロードする前に、すべてのウィジェットの ASP パネルが最初にロードされます。

誰かがこれがどのように発生するかを説明し、これがセットアップされているコードを教えてもらえますか?

どんな助けでも大歓迎です

4

1 に答える 1

0

私はバージョン 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) されます。そこから、ウィジェットのコンテンツはそれ自身の手の中にあります。

于 2011-07-19T23:24:26.700 に答える