У меня есть страница ASP.NET с двумя экземплярами одного и того же веб-элемента управления пользователя (простой редактор WYSIWYG).При отправке WUC немного фокусируются на JavaScript, а затем продолжают обычную обратную передачу.
Первый экземпляр работает, но второй не может отправить изменения обратно на сервер (он возвращается к исходному,и посты, которые).Я считаю, что проблема в том, что JS стреляет только для первого WUC.Я проследил это до следующего кода из сгенерированного клиентского источника:
function WebForm_OnSubmit() {
prepHtml('AddEditPopup1_ctlEditorQuestion_txtEdit','AddEditPopup1_ctlEditorQuestion_divEdit', 'AddEditPopup1_ctlEditorQuestion_divHT' );
//snip...
}
Кажется, проблема в том, что должно быть два вызова на prepHtml
: одиндля экземпляра ctlEditorQuestion
WUC и для экземпляра ctlEditorAnswer
.
Вместо этого есть только один для ctlEditorQuestion
.Оба элемента управления регистрируют событие OnSubmit, но один из них перезаписывает другой.
Вызов prepHtml
регистрируется из кода C # WUCs во время выполнения:
//Page_Load
_onSubmit = String.Format("prepHtml('{0}','{1}', '{2}' );",
txtEdit.ClientID, divEdit.ClientID, divHT.ClientID);
//OnPreRender
Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "get-html", _onSubmit);
Я должен указатьиз-за того, что я сам не писал этот элемент управления и никогда раньше не видел такого рода регистрацию кода JS OnSubmit.Page.ClientScript.RegisterOnSubmitStatement
абсолютно новый для меня.
Мне нужно зарегистрировать оба prepHtml
вызова, чтобы они выполнялись последовательно.Это возможно?Я открыт для альтернатив Page.ClientScript.RegisterOnSubmitStatement
, пока код все еще запускается при отправке.