Si vous utilisez un champ de modèle dans votre GridView, vous pouvez passer la clé primaire dans la propriété CommandArgument pour votre sélectionnez la commande. Exemple:
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btnSelect" runat="server" Text="Select" CommandName="select" CommandArgument='<%# Eval("My_Primary_Key") %>' />
</ItemTemplate>
</asp:TemplateField>
Ensuite, lorsque l'utilisateur clique sur le bouton « select », ce qui déclenche un événement « RowCommand » sur votre gridview. Si vous capturez cet événement et vérifier la propriété e.CommandArgument, vous serez en mesure d'accéder à la clé primaire correspondant à la ligne ils ont choisi:
protected void myGridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.Equals("select", StringComparison.CurrentCultureIgnoreCase))
{
int primaryKeyInteger = Convert.ToInt32(e.CommandArgument);
// Do other stuff ...
}
}
Hope this helps!
Je l'ai fait d'une autre manière parce que j'utilise EntityDataSource mais je suppose que cela fonctionnerait aussi. – drasto