Supprimer la ligne Datalist avec plusieurs clés primaires


4

J'ai une datalist avec un OnDeleteCommand = "Delete_Command".

Je veux supprimer un enregistrement avec plusieurs clés primaires mais je ne sais pas comment y accéder à partir de l'événement Delete_Command.

Si j'utilise DataKeyField, je suis limité à une seule clé. Des solutions de contournement pour cela?

1

Vous pouvez accéder à toutes les touches:

gridView.DataKeys[rowNum][dataKeyName] 

où rowNum est e.RowIndex du gestionnaire d'événements gridView_RowDeleting et dataKeyName est la clé que vous souhaitez obtenir:

<asp:GridView ID="gridView" runat="server" DataKeyNames="userid, id1, id2, id3" OnRowDeleting="gridView_RowDeleting"> 

protected void gridView_RowDeleting(object sender, GridViewDeleteEventArgs e) 
{ 
    gridView.DataKeys[e.RowIndex]["userid"]... 
    gridView.DataKeys[e.RowIndex]["id1"]... 
    gridView.DataKeys[e.RowIndex]["id2"]... 
    gridView.DataKeys[e.RowIndex]["id3"]... 
} 

0

Oh, désolé, je l'ai manqué.

AFAIK il n'y a pas une telle possibilité par défaut. Peut-être vous pouvez créer une clé composite à partir de vos clés primaires, comme

Key1UnderscoreKey2UnderscoreKey3

et diviser dans le gestionnaire d'événements. Voici donc un gestionnaire multi-clés bricolage pour DataList :-)

Editer: Le trait de soulignement s'est perdu pendant le format, il remplace par du texte en italique. Donc, au lieu de "soulignement" mot utiliser de vrais traits de soulignement