0

我有一个从 DropDownList 继承的自定义服务器控件。在回发时,项目丢失。它看起来像这样:

public class MyClientSelectList : DropDownList
{       
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        // design mode hack to let visual studio display in design mode
        if (!DesignMode)
        {
            if (!Page.IsPostBack)
            {
                this.Items.Add(new ListItem("Select an item..."));
                // add more items from db
            }
        }
    }
}

我检查了 EnablePostBack = true。我在托管此自定义服务器控件的页面的页面加载中选择了一个选定的值。

为什么物品在回发时会丢失?

4

1 回答 1

1

EnableViewState 默认已经是 True,所以 mshsayem 的解决方案是行不通的。有两种方法可以做到这一点,一种标准方法是覆盖 SaveControlState 和 LoadControlState 方法请参阅http://msdn.microsoft.com/en-us/library/1whwt1k7(v=VS.100).aspx
另一种方法是,在初始化中,无论是否回发,都从数据库中重新加载列表项,然后从发布数据中检索选定的值并将其设置回下拉列表

于 2012-12-11T03:15:35.727 回答