Это уже было задано многими пользователями SO и также имеет решения. Но никто из них не работает для меня.Сделайте обратную передачу в диалоговом окне интерфейса jQuery
В ASPX
<asp:Button ID="btnConfirm" ClientIDMode="Static" runat="server" Text="Confirm" OnClick="btnConfirm_Click"/>
<script type="text/javascript">
$(function inPageLoad() {
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function() {
//Confirmation Dialog
$(document).on('click', '#btnConfirm', function (e) {
e.preventDefault();
$('<div></div>').appendTo('body')
.html('<div><h6>Yes or No?</h6></div>')
.dialog({
modal: true, title: 'message', zIndex: 10000, autoOpen: true,
width: 'auto', resizable: false,
buttons: {
Yes: function() {
$(this).dialog("close");
__doPostBack('btnConfirm','');
},
No: function() {
$(this).dialog("close");
}
},
close: function (event, ui) {
$(this).remove();
}
});
});
});
});
$(document).ready(inPageLoad);
</script>
В aspx.cs
protected void btnConfirm_Click(object sender, EventArgs e)
{
SomeFunction();
}
Я хочу сделать постбэк (перейти к событию 'btnConfirm_Click' в коде), если клик 'Да'. Несмотря на то, что диалог всплывает хорошо, он не делает обратной передачи. Вся помощь ценится!
Вы проверили любой яваскрипта ошибки? – Sami
Вы отлаживаете его и подтверждаете, что 'doPostBack' действительно выполняется? Любые ошибки в консоли? – Andrei
@Andrei, да, есть ошибка 'inPageLoad не определена'. Но так как диалог всплыл хорошо, я проигнорировал это. Это причина? – Isuru