同じ Web ユーザー コントロール (単純な WYSIWYG エディター) の 2 つのインスタンスを含む ASP.NET ページがあります。送信時に、WUC は JavaScript マジックを実行してから、通常のポストバックに進みます。
最初のインスタンスは機能しているように見えますが、2 番目のインスタンスはサーバーへの変更のポストバックに失敗します (元のインスタンスに戻り、それをポストします)。問題は、JS が最初の WUC に対してのみ起動することだと思います。生成されたクライアント側のソースから、次のコードまでたどりました。
function WebForm_OnSubmit() {
prepHtml('AddEditPopup1_ctlEditorQuestion_txtEdit','AddEditPopup1_ctlEditorQuestion_divEdit', 'AddEditPopup1_ctlEditorQuestion_divHT' );
//snip...
}
問題は、WUC のインスタンス用とインスタンス用の2 つの呼び出しがあることです。prepHtml
ctlEditorQuestion
ctlEditorAnswer
代わりに、 用のものしかありませんctlEditorQuestion
。どちらのコントロールも OnSubmit イベントを登録していますが、一方が他方を上書きします。
呼び出しは、prepHtml
実行時に WUC の C# コードから登録されます。
//Page_Load
_onSubmit = String.Format("prepHtml('{0}','{1}', '{2}' );",
txtEdit.ClientID, divEdit.ClientID, divHT.ClientID);
//OnPreRender
Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "get-html", _onSubmit);
私はこのコントロールを自分で書いたわけではなく、OnSubmit JS コードのこの種の実行時登録はこれまで見たことがありません。Page.ClientScript.RegisterOnSubmitStatement
は私にとってまったく新しいものです。
両方のprepHtml
呼び出しを登録して、順番に実行する必要があります。これは可能ですか?Page.ClientScript.RegisterOnSubmitStatement
送信時にコードが起動される限り、私は の代替案を受け入れます。