如何在 asp.net 中的页面加载事件之前调用 JavaScript 确认对话框

how to call javascript confirmation dialog box before pageload event in asp.net?

本文关键字:事件 调用 JavaScript 对话框 确认 加载 asp net      更新时间:2023-09-26

这是我的服务器端代码:

 protected void Page_Load(object sender, EventArgs e)
    {
       if (Page.IsPostBack == false)
       {
               string confirmValue = Request.Form["confirm_value"];
               if (confirmValue == "Yes")
                {
                UserId = Convert.ToInt32(Request.QueryString["UserId"]);
                ProgramSrNno =          Convert.ToInt32(Request.QueryString["ProgramSrNo"]);
                UpdateAcknowledment(UserId, ProgramSrNno);
            }
        }
   }

这是我的javascript代码:

window.onload = Confirm();
function Confirm() {
       var confirm_value = document.createElement("INPUT");
       confirm_value.type = "hidden";
        confirm_value.name = "confirm_value";
        if (confirm("Do you want to Acknowledge?")) {
            confirm_value.value = "Yes";
        } else {
            confirm_value.value = "No";
        }
        document.forms["frmAcknowledgement"].appendChild(confirm_value);
    }

我希望对话框应该首先出现,然后相应地页面加载事件背后的代码工作。 如果用户选择了确定,则页面加载代码应该可以正常工作,否则不能。但是在这里,首先我的PageLoad事件背后的代码正在运行,然后它将转到JavaScript代码。

请检查这个

protected void Page_Init(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Confirm", "if(confirm('Are you sure?')){alert('ok');}else{alert('cancel');}", true);
        }
    }

你不能。

PageLoad在服务器上处理,则在执行页面加载在客户端上执行JavaScript confirm()

但是你可以让javascript再次回发到服务器。如果在页面中放置隐藏字段控件并在 javascript 中设置其值,则可以在回发期间检索字段的值

标记

<asp:HiddenField ID="hidField" ClientIDMode="Static" runat="server" />

.JS

function Confirm() {
    if (confirm("Do you want to Acknowledge?")) {
        document.getElementById('hidField').value = "Yes";
    } else {
        document.getElementById('hidField').value = "No";
    }
    document.forms[0].submit();
}

代码隐藏

if(Page.IsPostBack) 
{
    string confirmValue = this.hidField.Value;
}