2012-12-10 57 views
0

我有一個從DropDownList繼承的自定義服務器控件。回發時,物品丟失。它看起來像這樣:自定義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。我在託管此自定義服務器控件的頁面的頁面加載中選擇一個選定的值。

爲什麼物品在回發中丟失?

+0

向我們顯示您的標記... – IrishChieftain

回答

1

默認情況下EnableViewState已爲True,因此mshsayem的解決方案將無法工作。 有很2的方式來做到這一點,一個標準的方法是重寫SaveControlState和LoadControlState的方法 參考http://msdn.microsoft.com/en-us/library/1whwt1k7(v=VS.100).aspx
另一種方法是,在初始化,重新從數據庫列表中的項目無論是回傳與否,然後檢索選定來自發布數據的價值並將其重新設置爲下拉列表

相關問題