У меня есть страница с содержанием, которая содержит следующее ...
- UpdatePanel1 - содержащий блоки отображения ошибок
содержит триггеры обновления для обеих кнопок- UpdatePanel2 - содержащий процесс 1 с кнопкой asp:
- updatePanel3 - содержащий процесс 2 с кнопкой asp:
- JavaScript, который предоставляет пользователю всплывающее окно подтверждения JQuery Messagebox в зависимости от выполняемого процесса.
UpdatePanel 2 или 3 становится видимым в зависимости от выбора пользователя в параметрах меню.
Когда я нажимаю кнопку, появляется окно сообщения, и страница обрабатывается правильно с использованием __doPostback из ответа окна сообщения, и страница выполняет полную обратную передачу.
Я бы предпочел, чтобы страница выполняла частичную обратную передачу и содержимое, которое у нее было, и отображала блоки отображения ошибок, если произошла ошибка. Мы будем благодарны за любую помощь.
ничего особенного в кнопке
<asp:Button ID="ResetSomething" runat="server" Text="ResetSomething" Width="275px" />
вот блок скрипта страницы содержимого
<script type="text/javascript" language="javascript">
<!--
function pageLoad() {
setform();
};
function setform() {
var reset1_button = $('input[id*=ResetSomething]');
var reset2_button = $('input[id*=ResetSomethingElse]');
reset1_button.click(function() {
var element = $(this);
$.prompt('Message1', { show: 'slideDown', buttons: { Ok: true, Cancel: false },
submit: function(v, m, f) { submit_reset_callback(v, m, element); }
});
return (false);
});
var submit_reset_callback = function(result, messages, element) {
if (result) { __doPostBack("ResetSomething");}
return (false);
};
reset2_button.click(function() {
var element = $(this);
$.prompt('Message2', { show: 'slideDown', buttons: { Ok: true, Cancel: false },
submit: function(v, m, f) { submit_update_callback(v, m, element); }
});
return (false);
});
var submit_update_callback = function(result, messages, element) {
if (result) { __doPostBack("ResetSomethingElse"); }
return (false);
};
};
-->
</script>
это код для OnInit:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
this.PreLoad += (sender, args) =>
{
this.ClientScript.GetPostBackEventReference(this, "arg");
if (!IsPostBack) { return; }
string __targetaction = this.Request["__EVENTTARGET"];
string __args = this.Request["__EVENTARGUMENT"];
if (string.IsNullOrEmpty(__args)) return;
if (__targetaction == "ResetSomething")
{
ResetSomething();
}
if (__targetaction == "ResetSomethingElse")
{
ResetSomethingElse();
}
this.upnlNotifications.Update();
};
}