Tengo un GridView
con un DataKey
asociado, que es el ID del artículo. ¿Cómo recupero ese valor dentro del evento RowCommand
?Obtener valores de DataKey en GridView RowCommand
Esto parece funcionar, pero no me gusta el molde a LinkButton
(¿y si algún otro comando está activando el evento?), Y no estoy muy seguro del bit NamingContainer
.
LinkButton lb = (LinkButton)e.CommandSource;
GridViewRow gvr = (GridViewRow)lb.NamingContainer;
int id = (int)grid.DataKeys[gvr.RowIndex].Value;
Soy consciente de que en lugar de eso podía pasar por aquel ID que el CommandArgument
, pero optó por utilizar DataKey
me dará más flexibilidad.
También soy consciente de que es posible utilizar un campo oculto para la ID, pero considero que es un truco que no quiero usar.
Terminé usando CommandArgument, pero puedo ver cómo esta solución también funcionaría. – Farinha
Creo que es mejor cuando necesitas acceder a más de un solo valor ... – Elph
Cuando utilicé un enlace en lugar de un botón, hice que esto funcionara sin configurar CommandArgument en la página aspx. La propiedad CommandArguement del evento arg contenía el índice de la fila. Acabo de usar el código para el evento del servidor y funcionó. – grahamesd