2013-07-04 61 views
11

我使用如何讓下拉列表只讀在C#

TextBox.ReadOnly = false; 

爲只讀。

我該如何修復DropDownList?

我用啓用=假屬性,如...

TextBox.Enabled = false; 
DropDownList.Enabled = false; 

但是,在那之後的CSS類在這兩個控制在運行時調用。

請給我任何屬性,如「ReadOnly」。

+1

只讀下拉列表也可以是標籤。如果你不能改變價值,那麼重要的是什麼。 – Jodrell

+2

其實我想這樣做... 如果我選中了複選框,之後我無法更改任何文本框和下拉列表的任何值。 –

+0

文本框是可編輯的,所以我們使用只讀如果nt wnt編輯,但下拉填充運行時,不可編輯,所以沒有隻讀屬性它 –

回答

12

請嘗試使用asp.net沒有隻讀屬性爲DropDownList

<asp:DropDownList ID="DropDownList1" runat="server" Enabled="False"> 
    </asp:DropDownList> 

或者在運行時改變它:

DropDownList1.Enabled=false; 

,並改變它的CSS類爲好。

DropDownList1.CssClass = "class"; 
+1

謝謝,它的工作一次又一次地謝謝你,我節省了我的時間任何我的表單設計。:) –

+0

歡迎您:) –

+5

值得注意的是,'disabled' dropdownlist沒有在post_back上記錄其數據。只讀控件發生的事情。 –

8

另一種方式:

代碼背後:只需添加屬性disabled

DropDownList1.Attributes.Add("disabled", "disabled"); 

客戶端:

$("#DropDownList1").attr("disabled","disabled"); 

JS FIDDLE

+0

我試過這個,當我嘗試從代碼隱藏檢索它時,它給了我下拉的默認值。 – Jack

3

使用面板與啓用=「假」,把你的控制中:

<asp:Panel ID="pnlname" runat="server" Enabled="false"> 
    <asp:DropDownList ID="DropDownList1" runat="server"> 
    </asp:DropDownList> 
</asp:Panel> 
0

爲禁用下拉列表數據不能回傳讀取。因此,作爲解決方法不要禁用它,但首先清除dropdownlist,然後綁定只有已選擇的項目。

ListItem item = DropDownList.SelectedItem; 
DropDownList.Items.Clear(); 
DropDownList.Items.Add(item);