2011-08-01 38 views
0

我在自定義DropDownList控件上保持選定值的問題。我想如果在基本控件上啓用viewstate屬性,一切都將被設置,我發現情況並非如此。我想另一個問題是我可能應該使用Request對象來獲取/設置值?我的控制如下。查看自定義DropDownList控件的狀態

[DefaultProperty("Text")] 
[ToolboxData("<{0}:TicketStatusDropdownControl runat=server></{0}:TicketStatusDropdownControl>")] 
public class TicketStatusDropdownControl : DropDownList 
{ 

    private string _defaultValue = string.Empty; 
    private string _selectedItem = string.Empty; 
    private string _selectedValue = string.Empty; 

    protected override void Render(HtmlTextWriter writer) 
    { 
     if (_defaultValue != string.Empty) 
     { 
      this.Items.Add(new ListItem(_defaultValue)); 
     } 

     foreach (string item in TicketWorkflowStates.getWorkflowStates()) 
     { 
      this.Items.Add(new ListItem(item)); 
     } 

     base.Render(writer); 
    } 



} 

回答

0

嘗試重寫LoadViewState()和SaveViewState()方法 - 設置和檢索ViewState的值呢?

+0

對於視圖狀態和創建自定義控件來說相當新穎,到目前爲止我所提出的是。保護覆蓋void LoadViewState(object savedState) if(savedState!= null) {object_selectionValue =(object)savedState; base.LoadViewState(savedState); () } } 保護覆蓋對象SaveViewState() {0126} selectValue = base.SelectedValue; return selectValue; } –

+1

甚至沒有需要它,我可以使用控件提供的ControlState ..我在Render方法中添加了列表項,而不是OnPreRender,這顯然會殺死該數據的Control/ViewState。 –

+0

現在工作嗎? – IrishChieftain