2013-07-04 9 views
11

UżywamJak DropdownList tylko do odczytu w C#

TextBox.ReadOnly = false; 

na tylko do odczytu.

Jak mogę to naprawić w DropDownList?

używam enabled = fałszywych właściwości, takie jak ...

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

ale potem klasa css nie dzwonić w tej grupie kontrolnej w czasie wykonywania.

Podaj mi właściwości takie jak "Tylko do odczytu".

+1

Lista wyświetlana tylko do odczytu może być również etykietą. Jeśli nie możesz zmienić wartości, o co chodzi. – Jodrell

+2

Właściwie chcę to zrobić ... Jeśli zaznaczyłem to pole wyboru, po tym czasie nie mogę zmienić żadnej wartości żadnego pola tekstowego i listy rozwijanej. –

+0

Pole tekstowe jest edytowalne, więc używamy readonly, jeśli nie chcesz edytować, ale lista rozwijana zapełni się w czasie wykonywania, bez edycji, więc nie ma dla niej właściwości tylko do odczytu. –

Odpowiedz

12

Nie ma właściwość tylko do odczytu dla DropDownList w ASP.NET

Spróbuj użyć:

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

lub zmienić ją w czasie wykonywania:

DropDownList1.Enabled=false; 

i zmienić jego klasy css, jak również.

DropDownList1.CssClass = "class"; 
+1

Dziękuję, to dzieło dziękuję ci raz za razem, oszczędzasz mój czas na mój projekt postaci.:) –

+0

serdecznie zapraszamy;) –

+5

Warto zauważyć, że lista rozwijana 'disabled' nie ma danych uwzględnionych w post_back. Coś, co dzieje się z kontrolkami tylko do odczytu. –

8

Innym sposobem:

Code Behind: Wystarczy dodać atrybut disabled

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

Client Side:

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

JS FIDDLE

+0

Próbowałem tego, i to daje mi domyślną wartość menu rozwijanego, gdy próbuję odzyskać go z the codebehind. – Jack

3

Użyj panel jak z enabled = "false" kontrolę i umieścić wewnątrz:

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

jako wyłączone dane DropdownList nie mogą być odczytywane w odświeżenie strony. W związku z tym nie należy go wyłączać, lecz najpierw wyczyścić listę rozwijaną, a następnie powiązać tylko już wybrany element.

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