У меня есть 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, но я считаю, что это взломать, который я не хочу использовать.