Ho una DataList che ha una collezione di persone ad essa associate, con ogni persona che ha un pulsante che quando viene cliccato deve causare un postback asincrono in modo che il gestore di eventi OnClick possa modificare i dettagli mostrati in un UpdatePanel [la DataList è esterna l'UpdatePanel].Come attivare sempre un Postback asincrono per un UpdatePanel da un pulsante in una DataList?
Ho effettuato due tentativi per impostare il pulsante per modificare UpdatePanel nel gestore eventi OnItemDataBound del DataList. Uno assegna un AsyncPostBackTrigger a UpdatePanel e l'altro a RegisterAsyncPostBackControl per ScriptManager. Entrambi funzionano ma solo la prima volta. Se viene premuto il pulsante di un'altra persona [o lo stesso pulsante per una seconda volta], la pagina viene completamente ripristinata.
UpdatePanel's UpdateMode è impostato su Conditional e ScriptManager ha EnablePartialRenderingEnablePartialRendering impostato su true.
codice nel 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);
Una volta che la prima Async postback è accaduto sembra perdere il riferimento, ma sicuramente questo può essere persisteva senza dover associare nuovamente costantemente il DataList? Devo mancare qualcosa nel modo in cui sto provando questo.
Cercare risposte per un fine settimana probabilmente non avrà molto successo, ma in genere mi preoccupo di risolverlo prima di lunedì, dato che le nuove funzionalità devono essere pubblicate lunedì, e questa è l'unica cosa che impedisce di essere completato! – Rich