Mam DataList, który ma kolekcję osób związanych z nim, przy czym każda osoba ma przycisk, który po kliknięciu musi wywoływać asynchroniczny odświeżenie, więc program obsługi zdarzeń OnClick może zmieniać szczegóły wyświetlane w panelu UpdatePanel [DataList jest poza UpdatePanel].Jak zawsze uruchamiać Asynchroniczny PostBack dla UpdatePanel z przycisku w DataList?
Podjąłem dwie próby ustawienia przycisku, aby zmienić UpdatePanel w module obsługi zdarzeń OnItemDataBound DataList. Jeden przypisuje AsyncPostBackTrigger do UpdatePanel, a drugi do RegisterAsyncPostBackControl do ScriptManager. Oba działają, ale tylko za pierwszym razem. Jeśli zostanie naciśnięty inny przycisk osoby [lub ten sam przycisk po raz drugi], strona zostanie w całości wysłana z powrotem.
Tryb UpdatePanel jest ustawiony na Conditional, a ScriptManager ma wartość EnablePartialRenderingEnablePartialRendering na wartość true.
kod w OnItemDataBound:
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);
raz pierwszy asynchroniczny odświeżenie działo się to wydaje się tracić odniesienia, ale na pewno można to trwało bez konieczności nieustannego ponownie powiązać DataList? Muszę czegoś przegapić w taki sposób, w jaki próbuję to zrobić.
Szukanie odpowiedzi na weekend prawdopodobnie nie będzie zbyt udane, ale denerwujące [zazwyczaj] Potrzebuję tego rozwiązania przed poniedziałkiem, ponieważ nowe funkcje muszą zostać opublikowane w poniedziałek, a to jedyna rzecz, która powstrzymuje je przed ukończeniem! – Rich