ASP.NET - Come posso registrare più chiamate JavaScript da eseguire su Postback?
-
11-11-2019 - |
Domanda
Ho una pagina ASP.NET con due istanze dello stesso controllo dell'utente Web (un semplice editor Wysiwyg). Su invio, i WUC fanno un po 'di magia Javascript e poi procedono con un normale postback.
La prima istanza sembra funzionare, ma la seconda non riesce a pubblicare le modifiche al server (ritorna all'originale e lo pubblica). Credo che il problema sia che il JS spara solo per il primo WUC. L'ho rintracciato al seguente codice, dalla fonte sul lato client generato:
function WebForm_OnSubmit() {
prepHtml('AddEditPopup1_ctlEditorQuestion_txtEdit','AddEditPopup1_ctlEditorQuestion_divEdit', 'AddEditPopup1_ctlEditorQuestion_divHT' );
//snip...
}
Il problema sembra essere che dovrebbe esserci Due chiama a prepHtml
: uno per il ctlEditorQuestion
istanza del WUC e uno per il ctlEditorAnswer
esempio.
Invece, c'è solo quello per ctlEditorQuestion
. Entrambi i controlli stanno registrando l'evento OnSubmit, ma uno di loro sovrascrive l'altro.
Il prepHtml
La chiamata è registrata dal codice C# WUCS in fase di esecuzione:
//Page_Load
_onSubmit = String.Format("prepHtml('{0}','{1}', '{2}' );",
txtEdit.ClientID, divEdit.ClientID, divHT.ClientID);
//OnPreRender
Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "get-html", _onSubmit);
Dovrei sottolineare che non ho scritto questo controllo da solo e non ho mai visto questo tipo di registrazione di runtime del codice OnSubmit JS prima. Page.ClientScript.RegisterOnSubmitStatement
è totalmente nuovo per me.
Ho bisogno di registrarmi entrambi prepHtml
Chiama così funzionano in sequenza. È possibile? Sono aperto alle alternative a Page.ClientScript.RegisterOnSubmitStatement
, fintanto che il codice viene ancora licenziato su Invia.
Nessuna soluzione corretta