Migliorare il markup prodotto da CheckBoxList e RadioButtonList di ASP.NET

di Daniele Bochicchio, in ASP.NET 4.0,

ASP.NET 4.0 ha posto l'accento sulla generazione di un migliore markup da parte dei controlli. Un'area in cui questo effetto è particolarmente visibile è nel caso di CheckBoxList e RadioButtonList.

Come comportamento predefinito, questi due controlli organizzano il proprio rendering utilizzando una tabella HTML: quando si vuole avere un markup più pulito, quindi, diventa inutilizzabile e, spesso, è necessario ricorrere ad altre strade, molto più complesse, come quella di costruire un control adapter.

Con ASP.NET 4.0 è sufficiente impostare la proprietà RepeatLayout su UnorderedList. La proprietà agisce solo su CheckBoxList e RadioButtonList, facendo produrre un elenco di tag li, racchiusi dentro un tag ul.

<asp:RadioButtonList RepeatLayout="UnorderedList" CssClass="twoColumns"... />

Se la proprietà assume questo valore, diventa incompatibile la proprietà RepeatColumns, che non può essere utilizzata, scatenando un'eccezione. In questi casi, per suddivedere gli elementi su colonne è sufficiente utilizzare alcune direttive CSS:

ul.twoColumns {
   margin: 0px;
   padding: 0px;
   list-style: none;
}
  
.twoColumns li, li.twoColumns {
   float: left;
   width: 50%;
   margin: 0px;
   padding: 0px;
}

L'effetto che otterremo applicando questo CSS sarà lo stesso della tabella, ma il markup prodotto sarà più rispettoso degli standard web e potrà essere più facilmente adattato in fase di rendering, grazie ai CSS.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi