Question

J'ai une page ASP.NET avec deux instances du même contrôle d'utilisateur Web (un éditeur WYSIWYG simple). Sur soumettre, les WUC font un peu de magie javascript puis procédent avec un post-dos normal.

La première instance semble fonctionner, mais la seconde ne publie pas de modifications au serveur (elle revient à l'original et les publie). Je crois que le problème est que le JS ne tire que pour le premier WUC. J'ai tracé cela au code suivant, de la source côté client généré:

function WebForm_OnSubmit() {
    prepHtml('AddEditPopup1_ctlEditorQuestion_txtEdit','AddEditPopup1_ctlEditorQuestion_divEdit', 'AddEditPopup1_ctlEditorQuestion_divHT' );        
    //snip...
}

Le problème semble être qu'il devrait y avoir deux appels à prepHtml: un pour le ctlEditorQuestion instance du WUC, et un pour le ctlEditorAnswer exemple.

Au lieu de cela, il n'y a que celui pour ctlEditorQuestion. Les deux contrôles enregistrent l'événement OnSubmit, mais l'un d'eux écrase l'autre.

La prepHtml L'appel est enregistré dans le code C # WUCS à l'exécution:

//Page_Load
_onSubmit = String.Format("prepHtml('{0}','{1}', '{2}' );", 
                txtEdit.ClientID, divEdit.ClientID, divHT.ClientID);

//OnPreRender
Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "get-html", _onSubmit);

Je dois souligner que je n'ai pas écrit ce contrôle moi-même, et je n'ai jamais vu ce type d'enregistrement d'exécution du code JS ONSUMMIT auparavant. Page.ClientScript.RegisterOnSubmitStatement est totalement nouveau pour moi.

J'ai besoin de m'inscrire les deux prepHtml appels donc ils s'exécutent séquentiellement. Est-ce possible? Je suis ouvert aux alternatives à Page.ClientScript.RegisterOnSubmitStatement, tant que le code est toujours licencié sur soumission.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top