У меня есть GridView с ассоциированным DataKey, который является идентификатором элемента.
Как получить это значение внутри события RowCommand?
Кажется, что это работает, но мне не нравится приведение к LinkButton (что, если какая-то другая команда запускает событие?), и я не слишком уверен в бит NamingContainer.
LinkButton lb = (LinkButton)e.CommandSource;
GridViewRow gvr = (GridViewRow)lb.NamingContainer;
int id = (int)grid.DataKeys[gvr.RowIndex].Value;
Я знаю, что вместо этого я мог бы передать этот идентификатор как CommandArgument, но я решил использовать DataKey, чтобы дать мне больше гибкости.
Я также знаю, что можно использовать скрытое поле для ID, но я считаю, что это взломать, который я не хочу использовать.