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

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


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC