Datalist satırını birden çok birincil anahtarla silme


4

OnDeleteCommand = "Delete_Command" ile bir veri tabanım var.

Birden çok birincil Anahtar içeren bir kaydı silmek istiyorum, ancak bunu Delete_Command olayından nasıl erişeceğimi bilmiyorum.

DataKeyField kullanırsam, yalnızca bir anahtarla sınırlıyım. Bunun için herhangi bir geçici çözüm var mı? ROWNUM gridView_RowDeleting olay işleyicisinden e.RowIndex olduğu

gridView.DataKeys[rowNum][dataKeyName] 

ve dataKeyName almak istediğiniz anahtarıdır:

1

Anahtarların tüm erişebilirsiniz

<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, üzgünüm, özledim. AFAIK varsayılan olarak böyle bir ihtimal yoktur. Belki

Key1UnderscoreKey2UnderscoreKey3

gibi, birincil anahtarlar bir kompozit anahtarı oluşturmak ve olay işleyicisi içinde bölebilirsiniz. Yani bu, DataList için bir DIY çok-anahtar işleyicisidir :-)

Düzenleme: Altyazı format sırasında kaybolur, italik metinle değiştirilir. Yani "alt çizgi" sözcüğü yerine gerçek altını kullanın