这是我的场景:
我有一个带有占位符的页面。该页面向该占位符添加了不同类型的控件(我们不想显示一些数据 - 通过查询字符串或回发获取 id,因为我们还有一棵树)。
添加的控件或多或少都包含一个文本框(显示元素的名称)、复选框(显示元素的活动状态)和一个保存按钮,该按钮会触发此 web 控件中的方法。
现在我的问题非常明显:因为我正在动态添加控件(并且对于每个条件:!回发和回发),所以添加的控件中的保存方法不会触发 - 无论我做什么......
我只是愚蠢地得到了这个把戏:)
一些幕后信息(工作流程):
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);
}