In alcune applicazioni può ritornare utile il differenziare visivamente un ltesto rispetto ad un altro, ad esempio per rendere più visibili le pratiche scadute, i pagamenti non effettuati, etc.
In questo esempio vengono estratti i dati dalla tabella sales del database pubs, mostrati all'interno di un DataGrid.
Viene intercettato l'evento ItemDataBound, che si verifica quando i dati vengono associati al control, e recuperata (per posizione) la terza cella, quella che contiene la data.
Nel caso in cui l'anno sia uguale al 1993 viene cambiato il colore di sfondo.
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<SCRIPT language="C#" runat="server">
// stringa di conn
string connstring = @"server=localhost;database=pubs;trusted_connection=true;";
void Page_Load () {
// estrazione dati
bindData() ;
}
// routine di estrazione dati
void bindData () {
// connessione
SqlConnection conn = new SqlConnection(connstring);
// query
SqlDataAdapter query = new SqlDataAdapter("SELECT * FROM sales", conn);
// creo il dataset
DataSet querydataset = new DataSet();
query.Fill(querydataset);
myDataGrid.DataSource = querydataset;
myDataGrid.DataBind ( );
}
private void myDataGrid_ItemDataBound(object sender, DataGridItemEventArgs e)
{
// solo su Item e Alternating Item
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
// recupero il valore della terza colonna
string valore = ((TableCell) e.Item.Cells[2]).Text;
if (DateTime.Parse(valore).Year == 1993) {
e.Item.Style["background-color"] = "yellow";
}
}
}
</SCRIPT>
<form runat="server">
<ASP:DataGrid id="myDataGrid" runat="server"
CellPadding = "3"
HeaderStyle-BackColor="#336699"
HeaderStyle-Font-Size="Large"
EditItemStyle-BackColor="yellow"
ItemStyle-BackColor="lightsteelblue"
AlternatingItemStyle-BackColor="lightgray"
AutoGenerateColumns="true"
onItemDataBound="myDataGrid_ItemDataBound" />
</form>Commenti
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
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Accedere a risorse e immagini in Windows Store app di Windows 8
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Permettere il Drag-and-drop solo su zone predefinite con Silverlight 2.0
- Consumare dati binari in realtime lato client con ASP.NET Core SignalR
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Personalizare l'icona e le funzionalità di un sito web per iOS e IE
- Caricamenti veloci da CDN e fallback locale con ASP.NET Core
- Utilizzare dati in formato XML in XAML
- Accedere a dati esposti con WebService con Silverlight 1.0


