0

これが私のシナリオです
。プレースホルダーのあるページがあります。ページは動的に異なる種類のコントロールをこのプレースホルダーに追加します (いくつかのデータを表示したくありません - ツリーがあるため、クエリ文字列またはポストバックを介して ID を取得します)。
追加されたすべてのコントロールには、多かれ少なかれ、テキストボックス (表示要素の名前)、チェックボックス (表示要素のアクティブ状態)、およびこの Web コントロール内のメソッドを起動する保存ボタンが含まれています。

今、私の問題は本当に明白です: コントロールを動的に追加しているので (そしてすべての条件: !Postback と Postback)、そのように追加されたコントロール内の保存メソッドは起動しません - 私が何をしても...

私は単にトリックを取得するために愚かです:)

いくつかの舞台裏情報 (ワークフロー):

protected void Page_Load(object sender, EventArgs e)
{
    if (!this.Page.IsPostBack)
    {
        this.SelectedElement = SomeMagicMethod();
    }
}

protected void NodeSelected(object sender, TreeViewNodeEventArgs e)
{
    this.SelectedElement = SomeOtherMagicMethod();
}

protected override void OnLoadComplete(EventArgs e)
{
    // we have to take this life-cycle!
    if (this.SelectedElement!= null)
    {
        this.DisplayElement();
    }
}

private void DisplayElement()
{
    var UC = this.LoadControl(UCPath) as DataTypeUC;
    if (UC == null)
    {
        return;
    }

    UC.ID = EditCampaignFolderUCID;
    UC.SetData(this.SelectedElement);
    UC.DataBind();
    this.phContent.Controls.Add(UC);
}
4

2 に答える 2

0

コントロールを動的に追加するときは、保存ボタンのイベントを毎回接続する必要があります(つまり、保存ボタンが動的に生成されている場合)。

于 2009-04-21T08:34:18.427 に答える
0

トリックは: oninit ですべてを復元し、最後のリクエストでビューステートが保存された順序で... トリッキー トリッキー

于 2009-05-05T07:51:16.450 に答える