Löschen Datalist Zeile mit mehreren Primärschlüsseln


4

Ich habe einen Datenlogger mit einem OnDeleteCommand = "Delete_Command".

Ich möchte das Löschen eines Datensatzes mit mehreren Primärschlüsseln, aber ich weiß nicht, wie auf es vom Delete_Command Ereignis zugreifen.

Wenn ich DataKeyField verwende, bin ich auf nur einen Schlüssel beschränkt. Problemumgehungen für dieses Problem?

1

Sie können alle Tasten zugreifen:

gridView.DataKeys[rowNum][dataKeyName] 

wo rowNum e.RowIndex vom gridView_RowDeleting Event-Handler ist, und dataKeyName ist der Schlüssel Sie erhalten möchten:

<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, Entschuldigung, ich habe es verpasst.

AFAIK gibt es keine solche Möglichkeit standardmäßig. Vielleicht können Sie einen zusammengesetzten Schlüssel aus dem Primärschlüssel, wie

Key1UnderscoreKey2UnderscoreKey3

und spalteten es in den Event-Handler erstellen. Also das ist ein DIY-Multi-Key-Handler für DataList :-)

Bearbeiten: Der Unterstrich ging im Format verloren, es ersetzt durch Kursivschrift. Also statt "Unterstrich" Wort verwenden echte Unterstriche