2014-07-02 81 views
0

我目前使用此代碼嘗試填充我的下拉列表中的asp。動態Dropdownlist值不顯示使用服務器標籤

for (int i = 0; i < items.Count; i++) 
{ 
    models.Add(i+1, items.ElementAt(i).model); 
} 
ddl_Model.DataTextField = "Value"; 
ddl_Model.DataValueField = "Key"; 
ddl_Model.DataSource = models; 
ddl_Model.DataBind();    

但是,使用SelectedItem或SelectedValue時,它始終顯示爲我的列表爲空。

我相信這是由於我填充它之前,從一開始就宣佈一個空列表。

<h2>Please Select your Model:</h2> 
<asp:DropDownList ID="ddl_Model" AppendDataBoundItems="True" runat="server" > 
</asp:DropDownList> 

我可以知道如何從我的下拉列表中獲取正確的值嗎?

在此先感謝。

+0

在哪個方法/事件中填充ddl_Model? ddl_Model是否正確填充?你什麼時候檢查ddl_Model是否有SelectedItem/Value? –

回答

0

這是ViewState問題。基本上你的下拉菜單在PostBack事件中不是保持狀態。首先檢查您是否已啓用頁面的視圖狀態。

<asp:Page EnableViewState="True" /> 

第二件事是檢查你在哪裏填充下拉。如果您在頁面加載事件綁定,然後確保如果下進行!的IsPostBack或不

if(!IsPostBack) 
{ 
//your above code 
} 
使用調試,檢查ddl_Model.SelectedIndex是否ddl_Model.DataBind()之後調用代碼

第三件事被稱爲。

+0

謝謝!我解決了這個錯誤。 – Samuel