Paginazione e chiavi multiple con il controllo GridView

di Andrea Zani, in UserScript, ASP.NET 2.0, DataBinding,

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.

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