也许这是漫长的一天,但我无法在 CompositeControl 中持久保存由 ASP.NET ViewState 支持的集合。这是一个简化版本:
public class MyControl : CompositeControl
{
public Collection<MyObject> MyObjectCollection
{
get {
return (Collection<MyObject>)ViewState["coll"] == null ?
new Collection<MyObject>()
: (Collection<MyObject>)ViewState["coll"];
}
set { ViewState["coll"] = value; }
}
}
public partial class TestPage : System.Web.UI.Page
{
protected void btn_Click(object sender, EventArgs e)
{
myControl1.MyObjectCollection.Add(new MyObject());
}
}
单击按钮时,事件处理程序 btn_Click 执行良好,但 MyObjectCollection 的设置器永远不会被调用,因此 new MyObject() 永远不会被持久化。
我想我只是有一个金发的时刻。有人愿意帮忙吗?