2008-09-19 19 views
22

Cómo se pueden aplicar estilos a CheckBoxList ListItems. A diferencia de otros controles, como el repetidor, donde puede especificar <ItemStyle>, parece que no puede especificar un estilo para cada control individual.Aplicar estilos a ListItems en CheckBoxList

¿Hay algún tipo de trabajo?

Respuesta

22

Puede añadir atributos a ListItems programación de la siguiente manera.

Supongamos que tiene un CheckBoxList y está agregando ListItems. Puede agregar atributos en el camino.

ListItem li = new ListItem("Richard Byrd", "11"); 
li.Selected = false; 
li.Attributes.Add("Style", "color: red;"); 
CheckBoxList1.Items.Add(li); 

Esto hará que el color del texto de listitem sea rojo. Experimenta y diviértete.

13

Parece que la mejor manera de hacerlo es crear una nueva CssClass. ASP.NET traduce CheckBoxList en una estructura de tabla.

usando algo como

Style.css

.chkboxlist td 
{ 
    font-size:x-large; 
} 

Page.aspx

<asp:CheckBoxList ID="chkboxlist1" runat="server" CssClass="chkboxlist" /> 

hará el truco

+0

Esto, por supuesto, afecta a todos los elementos de la lista, para afectar a un solo elemento de lista que necesita para agregar atributos al elemento de lista a medida que se crea. – Cyberherbalist

+0

¡Gracias por el consejo!Iba más por algo así como un repetidor puede aplicar un estilo a cada elemento, pero esto es ciertamente útil :) –

+0

Sí, eso fue en mi respuesta (con código), también. – Cyberherbalist

4

Además de la respuesta de Andrew ...

Dependiendo de qué otros atributos que se ponga un CheckBoxList o RadioButtonList, o lo que sea, ASP.Net hará que la salida de la utilización de estructuras diferentes. Por ejemplo, si configura RepeatLayout="Flow", no se representará como una TABLA, por lo que debe tener cuidado con los selectores descendientes que utiliza en su archivo CSS.

En la mayoría de las cajas, puede hacer una "Ver código fuente" en su página representada, tal vez en un par de navegadores diferentes, y descubrir qué hace ASP.Net. Sin embargo, existe el peligro de que las nuevas versiones de los controles del servidor o los diferentes navegadores los representen de manera diferente.

Si desea diseñar un elemento de lista particular o un conjunto de elementos de lista de manera diferente sin agregar atributos en el código subyacente, puede usar los selectores de atributos CSS. El único inconveniente es que no son compatibles con IE6. jQuery es totalmente compatible con los selectores de atributos de estilo CSS 3, por lo que probablemente también podría usarlo para un mayor soporte de navegador.

4

También puede lograr esto en el marcado.

<asp:ListItem Text="Good" Value="True" style="background-color:green;color:white" /> 
<br /> 
<asp:ListItem Text="Bad" Value="False" style="background-color:red;color:white" /> 

La palabra estilo aparece subrayada con la advertencia de que Atributo 'estilo' no es un atributo válido del elemento 'ListItem'., pero los elementos tienen el formato deseado de todos modos.

+1

+ 1. Eso también es genial. Aunque me preocuparía en un momento posterior que lo hagan, esta solución ya no funciona. – Cyberherbalist

1
public bool Repeater_Bind() 
{ 
    RadioButtonList objRadioButton = (RadioButtonList)eventArgs.Item.FindControl("rbList"); 
    if (curQuestionInfo.CorrectAnswer != -1) { 
     objRadioButton.Items[curQuestionInfo.CorrectAnswer].Attributes.Add("Style", "color: #b4fbb1;"); 
    } 
} 
1

Incluso puede tener diferentes estilos de fuente y color para cada palabra.

<asp:ListItem Text="Other (<span style=font-weight:bold;>please </span><span>style=color:Red;font-weight:bold;>specify</span>):" Value="10"></asp:ListItem> 
Cuestiones relacionadas