#763 - Paginazione e chiavi multiple con il controllo GridView

Il nuovo GridView è la versione migliorata del DataGrid, web control tra i più famosi nelle precedenti versioni di ASP.NET.
Tra le novità introdotte in questo web control c'è la possibilità di assegnare più "keys" ad ogni riga visualizzata, utile per poter prelevare più campi contemporaneamente al momento della selezione di un record.

Nell'allegato è possibile trovare un seplice esempio di GridView con paginazione, in cui è possibile selezionare una riga della tabella visualizzata. Nel momento della selezione nella parte superiore della finestra vengono visualizzati i due campi presenti in quella riga, valori presi direttamente dall'array DataKeyNames.

Per ottere questo ecco uno stralcio delle proprietà del GridView:

<asp:GridView ID="gw1" runat="server"
OnSelectedIndexChanging="gw1_SelectedIndexChanging"
DataKeyNames="id,nome"
AllowPaging="True"
OnPageIndexChanging="gw1_PageIndexChanging"
EnableViewState="False">
    <Columns>
      <asp:CommandField HeaderText="Select" ShowHeader="True" ShowSelectButton="True" />
    </Columns>
    </asp:GridView>

Una volta selezionata la riga, nell'evento "OnSelectedIndexChanging" potremo sapere i valori di questi campi con questo codice:

protected void gw1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
  messaggio.Text = string.Format(
            "Campo id: '{0}' - Campo nome: '{1}'<br />",
            gw1.DataKeys[e.NewSelectedIndex].Values[0].ToString(),
            gw1.DataKeys[e.NewSelectedIndex].Values[1].ToString()
        );
  BindData();
}

Notare anche, con l'esempio presente in questo script, come la paginazione e la selezioni funzionino correttamente anche disabilitando il ViewState, con un peso notevolemente minore della pagina.

Nota: Questo script contiene un allegato.


Approfondimenti

Commenti

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.




IN EVIDENZA
MISC