2010-05-15 6 views
1

J'ai GridView qui permet de sélectionner. Il faut des données de EntityDataSource. Comment puis-je obtenir l'objet entité sélectionné lorsque la ligne GridView est sélectionnée? Les clés primaires des entités ne sont pas affichées dans GridView.Comment obtenir la valeur sélectionnée de GridView (C#)

Merci pour les réponses

Répondre

1

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!

+0

Je l'ai fait d'une autre manière parce que j'utilise EntityDataSource mais je suppose que cela fonctionnerait aussi. – drasto

0

Vous pouvez utiliser la propriété de champ DataKeyNames d'une vue sur la grille ou vous pouvez aussi mettre la valeur cachée et lier les données sur les données événement lié. En utilisant le champ caché Gridview événement sélectionné, vous recherchez trouver caché classé et obtenir la valeur à partir de là. Merci Le lien suivant vous aidera.

http://forums.asp.net/t/951615.aspx

0

vous pouvez utiliser le contrôle caché dans le GridView caché les clés primaires

+0

Ok permet de dire que j'ai la clé primaire d'un entité que je veux changer. Mais comment puis-je obtenir l'entité elle-même à partir de la clé primaire? – drasto

0

vous pouvez utiliser goto clé primaire recherche dans la base de données du dossier avec la clé primaire .donc puis dans le programme utiliser une classe pour recevoir les données. (C# est la propriété)

Questions connexes