2012-03-07 9 views
7

No es el atributo Value:¿Por qué no puedo establecer un valor en un asp: CheckBox?

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

mientras que en HTML estándar esto es permitido:

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

por qué?

+1

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

+0

Vaya. Mi mente debe haber estado en otro lado, lo siento. –

Respuesta

22

La propiedad Text se utiliza para mostrar una etiqueta para la casilla de verificación.

El control tiene una InputAttributes propiedad que se puede añadir a:

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

Creo que si sólo tiene que añadir el atributo value a la marca, esto también obtendrá poblada.

Puede acceder al valor de este modo:

myChk.InputAttributes["value"]; 

Para responder a la cuestión de quéValue no es una acumulación de atributo para el control CheckBox:

Un CheckBox de manera aislada (solo por sí mismo) no necesita ningún valor. Por definición, es un booleano y se identifica por su ID. Todo lo que necesita hacer es verificar si fue verificado o no.

El valor entra en juego cuando se grupo casillas de verificación y hay un control para que - el CheckBoxList que utiliza ListItem - cada ListItem sí tiene una propiedad Value.

+0

que parece extraño, lo consigo para otros controles, pero las casillas de verificación? El valor parece tener más sentido. Supongo que se trata de la herencia de un GenericElement y similares para la iteración a través de interfaces comunes. –

+1

¡NO! La propiedad de texto se supone que es la "etiqueta" cerca de la casilla de verificación, no el valor de la casilla de verificación en sí ... – markzzz

+0

@markzzz - Tienes razón, error mío. Respuesta actualizada – Oded

Cuestiones relacionadas