Kullanıcı, GridView'da satırdaki herhangi bir noktaya bastığında, Seç düğmesi yerine satırın seçileceği bir özelliği uygularım.Seçme düğmesi olmadan GridView'da tam satır seçimi nasıl yapılır?
o uygulamak için, aşağıdaki kodu kullanıyorum: Yukarıdaki kod ile
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// Set the hand mouse cursor for the selected row.
e.Row.Attributes.Add("OnMouseOver", "this.style.cursor = 'hand';");
// The seelctButton exists for ensuring the selection functionality
// and bind it with the appropriate event hanlder.
LinkButton selectButton = new LinkButton()
{
CommandName = "Select",
Text = e.Row.Cells[0].Text
};
e.Row.Cells[0].Controls.Add(selectButton);
e.Row.Attributes["OnClick"] =
Page.ClientScript.GetPostBackClientHyperlink(selectButton, "");
}
}
aşağıdaki sorunlar var:
- Bu yalnızca çalışıyor Bu sayfa için
EnableEventValidation
false
olarak ayarlanmıştır. SelectedIndexChanged
yalnızcaGrid.DataBind()
sayfasının (her geri bildirimde)Page_Load
için çağrılması durumunda tetiklenir.
Yanlış bir şey yapıyorum? Daha iyi bir uygulama var mı?
Düzenleme: EnableEventValidation
true
olarak ayarlandığında , aşağıdaki hata görüntülenir:
Geçersiz geri gönderme veya geri arama bağımsız değişken. Olay doğrulama, yapılandırmada veya bir sayfada <% @ EnableEventValidation = "true"%> kullanılarak etkinleştirildi. Güvenlik nedeniyle, bu özellik, geri gönderme veya geri arama olayları için argümanların, orijinal olarak oluşturulmuş sunucu denetiminden kaynaklandığını doğrular. Veriler geçerli ve bekleniyorsa, geri bildirim veya geri çağırma verilerini doğrulama için kaydetmek için ClientScriptManager.RegisterForEventValidation yöntemini kullanın.
bu, 'EnableEventValidation' ayarının yanlış olarak ayarlanması sorununu çözmez. –
@ Tim: Soruyu düzenledim, lütfen kontrol et. – Homam
@Homam: Kodumu kullandınız mı ve hala "geçersiz geri gönderme/geri arama argümanı" mı alıyorsunuz? Bu hatayı projemde yeniden üretemiyorum ama bunun için başka bir neden olabilir. Bunu daha fazla araştırmak için zamanım yok. Bunu önlemek için [ClientScriptManager.RegisterForEventValidation] (http://msdn.microsoft.com/en-us/library/ms223397.aspx) adresini kullanabilirsiniz. Belki [bu bağlantı] (http://www.codeproject.com/KB/webforms/DoubleClickGridviewRow.aspx) yardımcı olur. –