2016-03-31 4 views
0

'da yanlış kayıt seçili. Birkaç kayıt görüntüleyen bir GridView var. Üçüncü kaydın üzerine tıklamak, kaydı düzenleyebileceğim aşağıda bir DetailsView görüntülüyor. Kayıtta değişiklik yapar ve kaydedersem, GridView yenilenir ve tatil yapar ve şimdi düzenlenmiş kaydım 5. satırdır. Ancak, 3. satır hala seçili ve DetailsView şimdi yeni düzenlediğimden farklı bir kayıt gösteriyor. Ben şimdi GridView sıralama düzeninde olabilir nerede rekor olursa olsun GridView seçenek yeniden OLDUĞUNU emin nasıl DetailsView üzerinden bir güncellemeden sonra Detay kaydını düzenledikten sonra, gridview

?

cevap

0

Sen GridView DataKeyNames alanını ekleyerek her satırın kimliği takip edebilirsiniz.

int savedClientID = (int)gvClients.DataKeys[gvClients.SelectedIndex].Values["ClientID"]; 

Daha sonra veri bağlama sonra bunun için bakmak ve yapabilirsiniz: kod arkasında ızgara yenilemek önce, (ilgili kimlik ClientID adında bir alandır burada varsayarak) Seçilen satırın kimliğini hatırlıyorum ilgili satırı seçin:

void gvClients_DataBound(object sender, EventArgs e) 
{ 
    gvClients.SelectedIndex = -1; 

    foreach (GridViewRow row in gvClients.Rows) 
    { 
     int clientID = (int)gvClients.DataKeys[row.RowIndex].Values["ClientID"]; 

     if (clientID == savedClientID) 
     { 
      gvClients.SelectedIndex = row.RowIndex; 
      break; 
     } 
    } 
} 

UPDATE

sayfalama GridView açıksa, bu görevde önerilen yöntemi kullanmak gerekebilir: GridView in ASP.Net -- Selecting the correct row

+0

Hemen hemen aynı çözümü denedim, sadece nasıl döngülü olduğu konusunda küçük bir fark. Hem bu çözüm hem de diğer çalışmalar, kayıtlar yıldız olduğu ve GridView'ın aynı sayfasında bittiği sürece. GridView'de paged sonuçları var. Düzenlenen kayıt sayfa 5'ten sayfa 1'e doğru giderse, sayfa 1'de bulunan düzenlenmiş kayıt yerine 5. sayfadaki bir kayıt seçilir. –

+0

Size yardımcı olabilecek bir gönderiye bağlantı ekledim. – ConnorsFan