Il DataGrid è uno dei Web Controls più utilizzato, per via della sua potenza e della sua enorme flessibilità.
Una mancanza che ha è però il supporto diretto per la visualizzazione dei record totali restituiti da una query.
La cosa è facilmente aggirabile utilizzando uno script come questo, che recupera il numero di righe della DataTable utilizzata, le salva in una variabile, che poi useremo nell'evento OnItemCreated per modificare il footer, eliminare le celle non necessarie, e visualizzare invece il numero totale di record.
Ecco l'esempio:
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<SCRIPT RUNAT="SERVER" Language="C#">
string TotalRecords = "Record totali: ";
void Page_Load() {
// connessione
string connstring = "server=localhost;trusted_connection=true;";
SqlConnection conn = new SqlConnection(connstring);
// query tramite DataAdapter
SqlDataAdapter query = new SqlDataAdapter("SELECT * FROM tabella", conn);
// popolamento del DataSet
DataSet ds = new DataSet();
query.Fill(ds,"Ricerca");
// numero totale di record del DataTable
TotalRecords += ds.Tables["Ricerca"].Rows.Count.ToString();
dg.DataSource = ds.Tables["Ricerca"].DefaultView;
dg.DataBind();
}
void dg_ItemCreated(Object o, DataGridItemEventArgs e) {
// se è il footer
if (e.Item.ItemType == ListItemType.Footer) {
// riferimento alla cella corrente - aggiungo il testo
((TableCell)e.Item.Cells[0]).Controls.Add(new LiteralControl(TotalRecords));
// occupo tutto le colonne
((TableCell)e.Item.Cells[0]).ColumnSpan = e.Item.Cells.Count;
// rimuovo le altre colonne
for (int i=1; i<e.Item.Cells.Count; i++){
e.Item.Cells.RemoveAt(1);
}
}
}
</SCRIPT>
<form runat="server">
<asp:datagrid id="dg" runat="server" OnItemCreated = "dg_ItemCreated" ShowFooter="true" />
</form>A questo script si può facilmente aggiungere anche una paginazione, per rendere ancora più funzionale il tutto.
http://www.aspitalia.com/ricerca/super.aspx?usag=1&key=paginazione+datagrid
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.









Stampa
Snippet
Download 



