2010-04-08 78 views
0

我在每個指向SqlDataSource的webform上都有一些DropDownLists。其中一些數據源使用其中一個DropDownLists作爲選擇參數,將列表過濾爲特定類別。DropDownList的SelectedValue不是我在Enabled = false時選擇的值

對於某些用戶,這些DropDownLists中的兩個將被自動設置和禁用。

當我提交下拉窗口啓用它的工作正常,但是當它們被禁用時,DropDownList的SelectedValue被重置爲列表中的第一個。

我DropDownLists構造如下:

<asp:DropDownList ID="ddlManager" runat="server" DataSourceID="dsManagers" 
    EnableViewState="false" DataValueField="ManagerID" DataTextField="MgrName" 
    AppendDataBoundItems="false" ondatabound="ddlManager_DataBound" > 

下拉列表上綁定事件的數據添加額外的項目如下:

protected void ddlManager_DataBound(object sender, EventArgs e) 
{ 
    this.ddlManager.Items.Insert(0, new ListItem("--Manager--", "--Manager--")); 
} 

任何人都可以擺脫任何光線,爲什麼這正在發生?

謝謝

回答

1

這是設計。禁用控件的值不會發布。使用其他一些機制。

0

我認爲這只是一個未啓用的問題。如果未啓用,則不能保存值,並恢復爲默認值。

1

或者,您可以讀取/寫入List<>Dictionary<>;和assign the list到您的DropDownList數據源,每當DropDownList框啓用。

0

要添加到KMån說的,你也可以使用viewstates而不是列表。

相關問題