2010-09-25 6 views
5

Her bir Kişinin kendisine bağlı bir Topluluğa sahip bir DataList'im var; tıklatıldığında, zaman uyumsuz bir geri göndermeye neden olması gerektiğinde, OnClick olay işleyicisi bir UpdatePanel'de gösterilen ayrıntıları değiştirebilir [DataList diskin dışında UpdatePanel].Her zaman bir DataList'deki bir Düğme'den bir UpdatePanel için Asenkron Postback'i nasıl tetiklerim?

Düğme'yi, DataList'in OnItemDataBound olay işleyicisinde UpdatePanel değiştirecek şekilde ayarlamak için iki girişimde bulundum. Biri bir AsyncPostBackTrigger'ı UpdatePanel'e atar ve diğeri ScriptManager'a RegisterAsyncPostBackControl'ü gönderir. Her ikisi de çalışıyor ama sadece ilk kez. Başka bir Kişinin Düğmesi [veya ikinci kez aynı Düğme] basılırsa, sayfa tamamen geri gönderilir.

UpdatePanel'in UpdateMode'u Koşullu olarak ayarlanmış ve ScriptManager'da EnablePartialRenderingEnablePartialRendering öğesi true olarak ayarlanmıştır. OnItemDataBound içinde

Kodu: İlk zaman uyumsuz PostBack oldu sonra

Button btnShowNotes = e.Item.FindControl("btnShowNotes") as Button; 

// Trigger 
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger(); 
trigger.ControlID = btnShowNotes.UniqueID; 
trigger.EventName = "Click"; 
upDetails.Triggers.Add(trigger); // UpdatePanel 

// The trigger or this is used, not both 
ScriptManager1.RegisterAsyncPostBackControl(btnShowNotes); 

o referansı kaybetmek gibi görünüyor, ama kesinlikle bu sürekli DataList yeniden bağlamanız gerek kalmadan kalıcı edilebilir? Bunu denediğim şekilde bir şeyi özlemeliyim.

+0

Bir hafta sonu cevapları aramak büyük olasılıkla çok başarılı olmayacak, ama can sıkıcı bir şekilde [normalde] Pazartesi gününe kadar yeni özelliklerin pazara girmesi gerektiğinden bu çözüme ihtiyacım var ve bu da tamamlanmaktan vazgeçen tek şey! – Rich

cevap

3

En iyi/en uygun olandan emin olmasam da bir çözüm buldum. Page_Load yönteminde her bir PostBack, ben döngü öğeler arasında ve düğmelere Aync geri gönderme kayıt:

if (IsPostBack) 
{ 
    foreach (DataListItem item in gvAllUsers.Items) 
    { 
     btnShowNotes = item.FindControl("btnShowNotes") as ImageButton; 
     ScriptManager1.RegisterAsyncPostBackControl(btnShowNotes); 
    } 
} 
+0

Birisi daha iyi bir yol bulabilirse, onları cevap olarak işaretleyeceğim. Benimki zaten 11 saat için olamaz. – Rich

0

ToolkitScriptManager1.RegisterAsyncPostBackControl (ibtnShowPicker) kod page_load ibtnShowPicker yukarıda koymak zorunda kimliği adı

olduğunu
İlgili konular