Domanda

Come si possono applicare gli stili a CheckBoxList ListItems. A differenza di altri controlli, come il ripetitore in cui è possibile specificare <ItemStyle>, non è possibile specificare uno stile per ogni singolo controllo.

Esiste una sorta di soluzione?

È stato utile?

Soluzione

È possibile aggiungere attributi a ListItems a livello di codice come segue.

Supponi di avere una CheckBoxList e di aggiungere ListItems. Puoi aggiungere attributi lungo la strada.

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

Questo renderà rosso il colore del testo dell'elenco. Sperimenta e divertiti.

Altri suggerimenti

Sembra che il modo migliore per farlo sia creare una nuova CssClass. ASP.NET traduce CheckBoxList in una struttura di tabella.

Usando qualcosa come

Style.css

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

Page.aspx

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

farà il trucco

Oltre alla risposta di Andrew ...

A seconda di quali altri attributi hai inserito in CheckBoxList o RadioButtonList, o qualsiasi altra cosa, ASP.Net eseguirà il rendering dell'output utilizzando strutture diverse. Ad esempio, se imposti RepeatLayout="Flow", non verrà visualizzato come TABELLA, quindi devi fare attenzione a quali selettori discendenti usi nel tuo file CSS.

Nella maggior parte dei casi , puoi semplicemente fare un " Visualizza sorgente " sulla tua pagina renderizzata, magari su un paio di browser diversi, e scopri cosa sta facendo ASP.Net. Esiste tuttavia il pericolo che nuove versioni del server controllino o browser diversi le rendano diversamente.

Se si desidera modellare una particolare voce di elenco o un insieme di voci di elenco in modo diverso senza aggiungere attributi nel code-behind, è possibile utilizzare i selettori di attributi CSS. L'unico inconveniente è che non sono supportati in IE6. jQuery supporta pienamente i selettori di attributi in stile CSS 3, quindi probabilmente potresti anche usarlo per un supporto più ampio del browser.

Puoi anche ottenere questo risultato nel markup.

<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 parola Stile verrà sottolineata con l'avvertenza che L'attributo 'stile' non è un attributo valido dell'elemento 'ListItem'. , ma gli elementi sono comunque formattati come desiderato.

Puoi persino avere stili e colori di caratteri diversi per ogni parola.

<asp:ListItem Text="Other (<span style=font-weight:bold;>please </span><span>style=color:Red;font-weight:bold;>specify</span>):" Value="10"></asp:ListItem>
public bool Repeater_Bind()
{
    RadioButtonList objRadioButton = (RadioButtonList)eventArgs.Item.FindControl("rbList");
    if (curQuestionInfo.CorrectAnswer != -1) {
        objRadioButton.Items[curQuestionInfo.CorrectAnswer].Attributes.Add("Style", "color: #b4fbb1;");
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top