Ottenere l'indice di riga con una GridView

di Marco Leoncini, in ASP.NET 2.0, DataBinding, GridView,

Utilizzando il control GridView l'indice della riga del controllo che ha causato il PostBack, può essere recuperato attraverso l'evento RowCommand.

All'event handler viene passato come parametro un oggetto GridViewCommandEventArgs, attraverso la proprietà CommandArgument è possibile recuperare l'indice di della riga.

Il meccanisco è del tutto automatico per le CommandField, mentre nel caso della TemplateField è necessaria qualche riga di codice in più.

Per prima cosa recuperiamo l'oggetto all'origine del PostBack tramite la proprietà CommandSource, eseguiamo il cast su Control e successivamente recuperiamo il NamingContainer che nel nostro caso è l'oggetto GridViewRow, che espone la proprietà RowIndex.
Di seguito un estratto del codice:

// recupero l'oggetto che ha causato l'evento
Control c = (Control)e.CommandSource;
// recupero il NamingConteiner
GridViewRow r = (GridViewRow)c.NamingContainer;
// recupero e visualizzo l'indice della riga
this.Label1.Text = string.Format("indice riga selezionata: {0}",r.RowIndex);

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