2013-07-04 3 views
11

Sto usandoCome fare DropDownList sola lettura in C#

TextBox.ReadOnly = false; 

per sola lettura.

Come posso risolvere il problema su DropDownList?

Io uso Enabled = false immobili come ...

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

ma, dopo quella classe CSS non chiama in questo sia il controllo in fase di esecuzione.

Per favore dammi proprietà come "ReadOnly".

+1

Un elenco a discesa di sola lettura può anche essere un'etichetta. Se non puoi cambiare il valore, qual è il punto. – Jodrell

+2

In realtà voglio fare così ... Se ho selezionato questa casella di controllo, dopo di che non sono in grado di modificare alcun valore di qualsiasi casella di testo e elenco a discesa. –

+0

La casella di testo è modificabile, quindi usiamo readonly se nt wnt non è editabile, ma il dropdown viene compilato in fase di runtime, non modificabile quindi nessuna proprietà readonly per esso –

risposta

12

Non esiste una proprietà di sola lettura per DropDownList in asp.net

Provare a utilizzare:

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

oppure modificarla in fase di esecuzione:

DropDownList1.Enabled=false; 

e cambiare è classe CSS pure.

DropDownList1.CssClass = "class"; 
+1

Grazie, è un lavoro grazie ancora e ancora, mi hai risparmiato il mio design di moduli.:) –

+0

siete i benvenuti;) –

+5

Vale la pena notare che un dropdownlist 'disabilitato' non ha i suoi dati contabilizzati su post_back. Qualcosa che succede con i controlli di sola lettura. –

8

Un altro modo:

Codice Dietro: Basta aggiungere l'attributo disabled

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

lato client:

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

JS FIDDLE

+0

Ho provato questo e mi dà il valore predefinito del menu a discesa quando provo a recuperarlo dal codebehind. – Jack

3

Utilizzare un pannello come con Enabled = "false" e mettere il vostro controllo interno:

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

Poiché i dati DropDownList con disabilità non possono essere letti in postback. Quindi, come soluzione alternativa, non disattivarlo, ma prima cancellare la lista a discesa e quindi associare solo l'elemento già selezionato.

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