2008-10-06 16 views

risposta

70

Se un controllo è disabled non può essere modificato e il suo contenuto viene escluso quando il modulo viene inviato.

Se un controllo è readonly non può essere modificato, ma il contenuto (se presente) è ancora incluso con l'invio.

+15

Questo non è necessariamente vero ... a seconda della versione di .NET, se il valore in sola lettura viene modificato, si ripristina il valore originale sul postback . Devi fare qualcosa come TextBox1.Attributes.Add ("readonly", "true"); per evitare questo. – mattruma

+6

Questo dovrebbe essere TextBox1.Attributes.Add ("readonly", "readonly"), ma sì, se si desidera che il viewstate funzioni, non è possibile utilizzare né ReadOnly né Enabled. – Alf

+0

Grazie per il chiarimento Alf! – mattruma

6

Readonly non "oscura" la casella di testo e invierà il valore su un postback.

4

Pensateci dal punto di vista del browser. Per sola lettura il browser invierà una coppia variabile/valore. Per disabili, non lo farà.

Esegui questo, poi guarda l'URL dopo aver colpito di conferma:

<html> 
<form action=foo.html method=get> 
<input name=dis type=text disabled value="dis"> 
<input name=read type=text readonly value="read"> 
<input name=normal type=text value="normal"> 
<input type=submit> 
</form> 
</html> 
3

Readonly permetterà all'utente di copiare il testo da esso. Disabilitato non lo farà.

+1

forse nel 2008, nel 2013 è possibile copiare i valori da entrambi –

1

Ho un modulo aspx figlio che esegue un indirizzo server di ricerca indirizzi. I valori della pagina di aspx figlio vengono quindi passati alle caselle di testo principali tramite il lato client javascript.

Sebbene sia possibile visualizzare le caselle di testo non sono state modificate né ReadOnly né Abilitato consentirebbe di reimpostare i valori nel formato padre.

10

Un altro comportamento è che i controlli readonly = 'true' generano eventi come click, ma i controlli di Enabled = False non lo faranno.

4

testo in sola lettura in Asp.net

<asp:TextBox ID="t" runat="server" Style="margin-left: 20px; margin-top: 24px;" 
Width="335px" Height="41px" ReadOnly="true"></asp:TextBox>