Gestire al meglio gli eventi RowCommand di GridView e ItemCommand di DetailsView e FormsView con la classe DataControlCommands

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

Solitamente una volta creato un event handler per eventi come RowCommand per GridView o ItemCommand per DetailsView e FormView, eseguiamo un confronto tra due stringhe, il CommandName esposto come proprietà dalle classiDetailsViewCommandEventArgs, FormViewCommandEventArgs o GridViewCommandEventArgs ed il nome del comando che vogliamo gestire, qualcosa come il seguente codice:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
  if(e.CommandName == "Select")
  {
    // codice
  }
}

Questa soluzione può presentare problemi se per qualsiasi motivo in future versioni del .NET Framework il nome dei comandi dovesse cambiare
Internamente i controlli citatiutilizzano la classe DataControlCommands, non istanziabile, che espone un campo statico e pubblico per ogni comando.
Di conseguenza il codice precedente, per questioni di migliore leggibilità e correttezza, può diventare:

if (e.CommandName == DataControlCommands.SelectCommandName)
{
  //fai qualcosa
}

Di seguito la lista di tutti i possibili valori:
- CancelCommandName
- DeleteCommandName
- EditCommandName
- FirstPageCommandArgument
- InsertCommandName
- LastPageCommandArgument
- NewCommandName
- NextPageCommandArgument
- PageCommandName
- PreviousPageCommandArgument
- SelectCommandName
- SortCommandName
- UpdateCommandName

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