2012-02-20 15 views
9

Necesito crear una lista de botones de opción, según los datos que devuelvo de mi base de datos. Cada botón debe tener un valor asociado que pueda obtener en función del botón seleccionado.Establecer valor de propiedad de RadioButton

Lo ideal sería utilizar el control RadioButtonList, sin embargo, necesito un diseño muy personalizado que RadioButtonList parezca no ser capaz de manejar.

Una alternativa sería crear RadioButton s individuales y envolverlos en un Panel para agruparlos. Sin embargo, no parece haber una propiedad Value en un RadioButton?

¿Hay alguna manera alternativa de establecer un valor para un control RadioButton? Alternativamente, una forma de personalizar completamente la salida RadioButtonList.

Por el momento, estoy pensando que podría tener que recurrir al uso de botones de radio HTML con runat="server", debe ser una mejor manera ...?

+0

Buena solución, gracias. ¿Dónde están los defensores de formularios web ahora ... –

Respuesta

3

Usted puede crear su propia clase de botón de radio que se extiende el estándar y añade una propiedad de valor:

public class ValueCheckBox : System.Web.UI.WebControls.RadioButton 
{ 
    public string Value { get; set; } 
} 
+0

Me gusta la solución, ¿hay alguna ventaja al usar esto sobre los Atributos. Añadir como lo sugirieron Rahul y Marchin? Ambos parecen hacer el trabajo. –

+0

Esto haría que la propiedad Value fuera más fácil de administrar a largo plazo en caso de que planee reutilizar el control en otro lugar. Quiero decir, simplemente compare 'radioButton.Attributes.Add (" Key "," Value ");' y 'radioButton.Value =" value ";'. – Rahul

+0

Parece que los atributos se deben usar para los atributos HTML que se envían al navegador http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webcontrol.attributes.aspx –

-1

El control RadioButton no tiene propiedad de valor, eso es correcto. Tienes que usar Checked en su lugar.

+1

Sí pero Checked simplemente me dice si el campo ha sido marcado o no. Los botones son dinámicos, así que necesito almacenar un valor asociado. –

+0

¿Qué piensas por 'valor asociado'? ¿Quieres hacer algún tipo de enlace? Esa propiedad 'Checked' se puede configurar, no solo leer. – MarcinJuraszek

+0

Quiero decir que si tengo 3 botones de opción, cada uno representa una fila en mi base de datos. Cuando el usuario marca uno, entonces necesito verificar qué botón ha sido marcado y asociarlo con un registro en mi base de datos. Entonces realmente necesito guardar la identificación junto con el botón de radio. –

2

Siempre se puede tratar de usar atributos para guardar el valor asociado. por ejemplo)

radioButton.Attributes.Add("Key", "Value"); 

Establecer la propiedad de grupo a ser el mismo para todos los botones de radio y usted debe ser bueno para ir. Solo recuerde, ASP .Net tiene un ligero problema si estos botones de radio individuales están en filas diferentes de un repetidor, vista de cuadrícula o algún tipo de cuadrícula.

+0

Ah, sí, olvidé que podría usar Attributes.Add.¿Hay alguna ventaja sobre el uso de la sugerencia de Travor Pilley de extender el control? Ambos funcionarían, divididos entre los dos. –

1

Para un conjunto rápido y sucio de botones de radio STATIC.
Utilicé el campo Etiqueta en la ventana Propiedades para definir manualmente un valor.

Si está utilizando una base de datos, probablemente deba vincular sus datos a ella. Nunca se sabe cuándo cambiará una clave o un nombre.

Cuestiones relacionadas