2012-03-07 11 views
7

Non c'è l'attributo Value:Perché non posso impostare un valore su asp: CheckBox?

<asp:CheckBox ID="CheckBox1" runat="server" /> 

mentre su HTML standard questo è consentito:

<input type="checkbox" ID="CheckBox1" value="My Valyue" /> 

perché?

+1

@Mr Lister: http://www.w3schools.com/jsref/dom_obj_checkbox.asp – markzzz

+0

Oops. La mia mente dev'essere stata da qualche altra parte, mi dispiace. –

risposta

22

La proprietà Text viene utilizzata per il rendering di un'etichetta per la casella di controllo.

Il controllo ha una proprietà InputAttributes che è possibile aggiungere a:

myChk.InputAttributes.Add("value", "My Value"); 

Credo che se è sufficiente aggiungere l'attributo value alla marcatura, questo sarà anche ottenere popolata.

È possibile accedere al valore in questo modo:

myChk.InputAttributes["value"]; 

di rispondere alla domanda di perchéValue non è una configurazione in attributo per il controllo CheckBox:

Un CheckBox in isolamento (solo di per sé) non ha bisogno di valore. Per definizione è un booleano ed è identificato dal suo ID. Tutto quello che devi fare è controllare se è stato controllato o meno.

Il valore entra in gioco quando si gruppo caselle di controllo e non v'è un controllo per questo - l'CheckBoxList che utilizza ListItem - ogni ListItem ha una proprietà Value.

+0

che sembra strano, lo prendo per altri controlli ma caselle di controllo? Il valore sembra avere più senso. Immagino che tutto riguardi l'ereditarietà di un GenericElement e simili per l'iterazione attraverso interfacce comuni. –

+1

NO! La proprietà del testo dovrebbe essere la "etichetta" vicino alla casella di controllo, non il valore della casella di controllo stessa .. – markzzz

+0

@markzzz - Hai ragione, mio ​​errore. Risposta aggiornata – Oded

Problemi correlati