Если вы используете поле шаблона в вашем сеточном представлении, вы можете передать первичный ключ в свойстве CommandArgument для вашей команды select. Пример:
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btnSelect" runat="server" Text="Select" CommandName="select" CommandArgument='<%# Eval("My_Primary_Key") %>' />
</ItemTemplate>
</asp:TemplateField>
Затем, когда пользователь нажимает кнопку «выбрать», это вызывает событие «RowCommand» в вашем виде сетки. Если вы захватите это событие и проверите свойство e.CommandArgument, вы сможете получить доступ к первичному ключу, соответствующему выбранной строке:
protected void myGridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.Equals("select", StringComparison.CurrentCultureIgnoreCase))
{
int primaryKeyInteger = Convert.ToInt32(e.CommandArgument);
// Do other stuff ...
}
}
Надеюсь, это поможет!