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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top