Procedura: personalizzare elementi in modo dinamico nel controllo server Web DataList
Aggiornamento: novembre 2007
È possibile personalizzare elementi nel controllo DataList dinamicamente. Questa operazione risulta utile nel caso si desideri impostare le caratteristiche degli elementi in base alle informazioni disponibili in fase di esecuzione. In questo argomento sono contenuti due esempi in cui viene illustrato come personalizzare gli elementi in un controllo DataList.
Nel primo esempio di codice viene illustrato come personalizzare un singolo elemento senza coinvolgimento di dati. Vengono visualizzati diversi tipi di modelli con diversi colori di sfondo.
Nel secondo esempio di codice viene illustrato come personalizzare il contenuto di un elemento di controllo DataList sulla base dei dati in esso visualizzati. Nel codice viene esaminato il contenuto di un'etichetta con associazione a dati nell'elemento per estrarre una data (la data di nascita). Se il mese della data di nascita corrisponde a quello corrente, l'elemento verrà evidenziato utilizzando un colore.
Esempio
' Example 1
Private Sub DataList1_ItemCreated(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) _
Handles DataList1.ItemCreated
Select Case e.Item.ItemType
Case ListItemType.Item
e.Item.BackColor = Color.LightGoldenrodYellow
Case ListItemType.AlternatingItem
e.Item.BackColor = Color.DarkGoldenrod
Case ListItemType.SelectedItem
e.Item.BackColor = Color.Yellow
Case Else
' Add code here to handle the header, footer, and
' separator templates.
End Select
End Sub
' Example 2
Private Sub DataList1_ItemDataBound(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) _
Handles DataList1.ItemDataBound
Dim dob As DateTime
Dim doblabel As Label
doblabel = CType(e.Item.FindControl("Label1"), Label)
dob = CType(doblabel.Text, DateTime)
If dob.Month = Today.Month Then
e.Item.BackColor = Color.Yellow
End If
End Sub
Compilazione del codice
Requisiti:
Un controllo DataList denominato DataList1 associato alla tabella Employees del database Northwind. Per informazioni sull'associazione di un controllo DataList a un'origine dati, vedere Procedura: aggiungere controlli server Web DataList a una pagina Web ASP.NET.
Un modello di elemento contenente almeno un controllo Label denominato Label1. Tale etichetta deve essere associata al campo BirthDate della tabella Employees. Per informazioni sull'associazione di controlli a campi, vedere Cenni preliminari sulle espressioni di associazione dati.
Programmazione efficiente
Il modo più affidabile per estrarre il valore di un controllo nel modello di controllo DataList è il seguente:
Assegnare un ID al controllo in fase di progettazione.
Utilizzare il metodo FindControl del contenitore di denominazione (in questo esempio un oggetto DataListItem).
Il metodo FindControl restituisce un oggetto di tipo Control. È necessario eseguire il cast di tale oggetto nel tipo di controllo appropriato. Se non viene rilevato alcun oggetto e si tenta di estrarne il valore, verrà generata un'eccezione di tipo NullReferenceException.
Vedere anche
Attività
Procedura: personalizzare gli elementi DataList in fase di esecuzione