Я знаю, что есть много вопросов, подобных этому, но я не вижу ничего такого. У меня есть страница ASPX и использование javascript для отображения всплывающего окна подтверждения. При нажатии на кнопку значение, которое я нажимаю, не используется, но вместо этого используется предыдущее значение. Поэтому, если я нажму OK, первый раз он отменяется. Если я нажму OK еще раз, тогда он переходит в состояние «ОК», если я нажму «Отменить», он все равно переходит в «ОК», я снова нажимаю «Отменить», и он отменяется. Я уверен, что это проблема с Postback, но я не знаю, как ее разрешить, так как я не звоню на javascript при нажатии кнопки, но позже. Я использую свой код позади, чтобы определить, является ли запись дубликатом, и поэтому я показываю всплывающее окно, позволяющее пользователю узнать, и дать им возможность принять или отменить. Если дубликат отсутствует, скрипт для всплывающего окна не будет вызван. Итак, как мне решить эту проблему?Postback Issue with Javascript Popup
Javascript в моей ASPX
function Confirm() {
var confirm_value = document.createElement("INPUT");
confirm_value.type = "hidden";
confirm_value.name = "confirm_value";
if (confirm("Duplicate Record. Do you want to save?")) {
confirm_value.value = "Yes";
} else {
confirm_value.value = "No";
}
document.forms[0].appendChild(confirm_value);
}
Это код из моей CS, вызывается из метода после проверки условий.
ScriptManager.RegisterStartupScript(this, base.GetType(), "confirmation", "Confirm();", true);
string confirmValue = Request.Form["confirm_value"];
if (confirmValue == "Yes")
{
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('You clicked YES!')", true);
}
else
{
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('You clicked NO!')", true);
}
Примечание: Я использую AutoPostBack несколько полей на той же странице, что сво форма ввода данных и в зависимости от того, что выбрано для одного поля зависит от того, как будет заполняться другое поле.
RegisterStartupScript, используемый для добавления js-кода в html со стороны сервера. он не будет выполняться немедленно. только после рендеринга html в браузере. поэтому вы не можете получить confirm_value в это время. –