C# 自定义DropDownList服务器控件在回发时丢失项目
我有一个从DropDownList继承的自定义服务器控件。回邮时,项目将丢失。它看起来像这样:C# 自定义DropDownList服务器控件在回发时丢失项目,c#,asp.net,C#,Asp.net,我有一个从DropDownList继承的自定义服务器控件。回邮时,项目将丢失。它看起来像这样: public class MyClientSelectList : DropDownList { protected override void OnInit(EventArgs e) { base.OnInit(e); // design mode hack to let visual studio display in design
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。我在承载此自定义服务器控件的页面的页面加载中选择一个选定值
为什么回发时项目丢失?默认情况下EnableViewState已为True,因此mshsayem的解决方案将无法工作。 有两种方法可以做到这一点,一种标准的方法是重写SaveControlState和LoadControlState方法 提到
另一种方法是,在Init中,无论是否回发,都从数据库重新加载列表项,然后从post数据中检索所选值并将其设置回dropdownlist