以下を考えると
public class MyControl : CompositeControl
{
private DropDownList myList;
protected override void CreateChildControls()
{
base.CreateChildControls();
myList = new DropDownList();
myList.AutoPostBack = true;
this.Controls.Add(myList);
if (!Page.IsPostBack)
{
myList.DataSource = MyBLL.SomeCollectionOfItems;
myList.DataBind();
}
}
}
リスト内のアイテムは適切に保持されていることがわかりましたが、別のコントロールがレンダリングされてからこのコントロールが再度レンダリングされると、最後に選択されたアイテムが保持されません。(代わりに、リストの最初の項目が常に選択されます)
最後に選択したアイテムを ViewState に自動的に保持する必要がありますか?それとも期待しすぎているのでしょうか?