Applicazione degli stili per elencare gli elementi in CheckBoxList
-
01-07-2019 - |
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?
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;");
}
}