Come si forza il post-back completo da un pulsante all'interno di un UpdatePanel?Come posso forzare il post-back completo da un pulsante all'interno di un UpdatePanel?
risposta
È possibile utilizzare la proprietà Triggers di UpdatePanel per registrare le azioni che attivano un postback completo.
Aggiungere un oggetto PostBackTrigger a tale proprietà, contenente il ControlID del controllo che deve attivare un completo postback.
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
...
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="myFullPostBackControlID" />
</Triggers>
</asp:UpdatePanel>
Da here:
Utilizzare il controllo PostBackTrigger attivare i controlli all'interno di un UpdatePanel per causare un postback invece di eseguire un postback asincrono.
<Triggers>
<asp:PostBackTrigger ControlID="controlID" />
</Triggers>
+1 - Troppo veloce @Aseem! – dugas
Hmm si, ma non funzionerà se all'interno di UpdatePanel si dispone di un GridView con numeri di pagina, ad esempio. Passa a una nuova pagina e i trigger non funzionano più. – Fandango68
Basta aggiungere questo perché nessun altro ha. È possibile farlo in code-behind in una riga di codice senza nessuno dei metodi precedenti. Basta mettere questo in Page_Load:
Visual Basic
ScriptManager.GetCurrent(Me).RegisterPostBackControl(myButtonID)
C#
ScriptManager.GetCurrent(this).RegisterPostBackControl(myButtonID);
Molto bello, dopo ore di ricerca, finalmente una soluzione che funziona. Il problema era che tutti i miei controlli (pannello di aggiornamento e pulsante) venivano creati nel codice, quindi non era possibile impostare un postbacktrigger. Grazie! – OverMars
Dovresti poterlo fare.Quando viene creato il controllo, è possibile utilizzare AddHandler per creare il trigger per la sottoroutine di risposta – EvilDr
Assolutamente giusto, è così semplice e proprio lì sono quasi imbarazzato non mi è mai venuto in mente. Molto bello però ... – OverMars
Ho avuto lo stesso problema con un ImageButton all'interno di un WebDataGrid.
Ho messo la linea da EvilDr all'interno del preRender per il webdatagrid. Ha funzionato alla grande!
for (int i = 0; i < wdgMyData.Rows.Count; i++)
{
ScriptManager.GetCurrent(this).RegisterPostBackControl((ImageButton)wdgMyData.Rows[i].Items[3].FindControl("btnDownloadExcel"));
}
La sua una vecchia questione non v'è l'approccio po 'complicato e, quando tutto è in pannelli aggiornamento e si vuole fare post completo indietro in modo che il codice document.ready lavora al clic.
1. Creare un pulsante fittizio di fuori del pannello di aggiornamento e fare clic su esso dal codice dietro come questo
ScriptManager.RegisterStartupScript(Page, this.GetType(), "ResetDoc", "ResetDocumentReady();", true);
2. definire la funzione sulla parte frontale come questo
function ResetDocumentReady() {
$("[id$=DummyButton]").click();
}
NOTA: Ma il modo migliore è usare il trigger, la risposta pubblicata da @Thibault Falise :)
- 1. Come forzare il pulsante per fare un postback completo invece del postback asincrono
- 2. Forza postback completo a livello di programmazione da UpdatePanel
- 3. Come attivare sempre un Postback asincrono per un UpdatePanel da un pulsante in una DataList?
- 4. Forzare un postback
- 5. Come ottenere l'id di Updatepanel che ha avviato un postback
- 6. Come impedire a UpdatePanel di causare il postback dell'intera pagina?
- 7. Come si utilizza un UpdatePanel correttamente? (asp.net)
- 8. Disattivare il postback con un clic su un pulsante
- 9. Icona "caricamento" ajax con postback UpdatePanel
- 10. Previene ASP.net __doPostback() da jQuery submit() all'interno di UpdatePanel
- 11. Controllo server personalizzato causa postback completi all'interno di UpdatePanel
- 12. pulsante senza postback?
- 13. In WatiN come aspettare che il postback sia completo
- 14. FileUpload.PostedFile sempre null all'interno di UpdatePanel
- 15. Come verificare se UpdatePanel sta postando?
- 16. Come controllare quale JavaScript viene eseguito dopo il postback parziale di UpdatePanel endRequest?
- 17. Come attivare un UpdatePanel con un controllo TextBox?
- 18. Come posso forzare il download di un file utilizzando php?
- 19. Esegui javascript dopo un postback parziale di un aggiornamento?
- 20. Come posso creare un postback di Textbox su KeyUp?
- 21. asp: UpdatePanel con un trigger casella di controllo ASP.NET
- 22. Controlli dinamici creati all'interno di UpdatePanel?
- 23. DatePicker scompare dopo il postback
- 24. ASP.Net - Javascript all'interno dell'AJAX UpdatePanel
- 25. Postback parziale con Javascript
- 26. Trigger UpdatePanel: impossibile trovare un evento denominato "OnRowCommand"
- 27. GUI Android - Come forzare un pulsante alla riga successiva?
- 28. Come posso forzare Doxygen a mostrare il percorso completo di inclusione?
- 29. Disabilitare un evento di clic del pulsante dinamico asp.net durante il postback e abilitarlo in seguito
- 30. Come posso forzare la lettura di un thread bloccato da un file in Rust?
Possiedo un UltraWebGrid Infragistics con una colonna costituita da pulsanti. Ho avuto un problema in cui facendo clic sui pulsanti si attivavano i gestori di eventi, che a loro volta aggiornavano la griglia, ma la griglia non si aggiornava effettivamente fino al secondo clic. Inserire i pulsanti in un UpdatePanel e aggiungere questi trigger ha risolto il problema. – tsilb