Ho un GridView
con un valore associato DataKey
, che è l'ID oggetto. Come posso recuperare quel valore all'interno dell'evento RowCommand
?Ottieni i valori DataKey in GridView RowCommand
Questo sembra funzionare, ma non mi piace il cast per LinkButton
(e se qualche altro comando sta sparando l'evento?), E non sono troppo sicuro del bit NamingContainer
.
LinkButton lb = (LinkButton)e.CommandSource;
GridViewRow gvr = (GridViewRow)lb.NamingContainer;
int id = (int)grid.DataKeys[gvr.RowIndex].Value;
Mi rendo conto che avrei potuto invece passare che ID come il CommandArgument
, ma ho scelto di usare DataKey
per darmi una maggiore flessibilità.
Sono anche consapevole che è possibile utilizzare un campo nascosto per l'ID, ma ritengo che un hack che non voglio usare.
Ho finito per usare CommandArgument, ma posso vedere come funzionerebbe anche questa soluzione. – Farinha
Penso che sia meglio quando hai bisogno di accedere più di un solo valore ... – Elph
Quando ho usato un collegamento piuttosto che un pulsante, ho fatto in modo che funzionasse senza impostare CommandArgument nella pagina aspx. La proprietà CommandArguement dell'argomento evento conteneva l'indice della riga. Ho appena usato il codice per l'evento del server e ha funzionato. – grahamesd