これが私のシナリオです
。プレースホルダーのあるページがあります。ページは動的に異なる種類のコントロールをこのプレースホルダーに追加します (いくつかのデータを表示したくありません - ツリーがあるため、クエリ文字列またはポストバックを介して 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);
}