asp.net web表单应用程序中的“确认”框

本文关键字:确认 net web 表单 应用程序 asp | 更新日期: 2023-09-27 18:27:13

如果用户想在不上传图像的情况下保存,我想用确认消息框向他们发出警告。

当用户点击保存按钮时,代码触发

if (string.IsNullOrEmpty(obj.Image)) {
    obj.Image= null;
    //Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "alert('Please Upload  Image!');", true);
    Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "confirm('Are you sure you want to save without uploading  images?');", true);
}

上面的逻辑用于显示确认框,但没有显示。

除此之外,如果用户点击了YesNo按钮,我该如何诱捕?

以便我可以相应地激发相关代码。

更新:

我可以显示带有以下代码的确认框

Page.ClientScript.RegisterStartupScript(this.GetType(), "msgbxConfirm", "confirm('Are you sure?');", true);

但我不确定如何捕获YESNo事件

asp.net web表单应用程序中的“确认”框

要处理确认弹出框的结果,请检查返回值。

如果单击"确定",它将返回true,否则将返回false。

例如:

if(confirm('test')) {
    alert('ok clicked')
} else {
    alert('cancel clicked or closed popup')
}

JSFiddle示例代码在操作

编辑:评论

如果用户在确认对话框上单击"确定",则要重新提交表单,您需要以下内容:

代码隐藏:

Page.ClientScript.RegisterStartupScript(
    this.GetType(), 
    "msgbxConfirm", 
    "doConfirm();", 
    true
);

aspx页面:

<script type=text/javascript>
function doConfirm() {
    if(confirm('Are you sure?') {
        document.getElementById(<id_of_form_submit_button>).click();
    }
}
</script>

我在这里添加的一件事是,您无法在服务器端代码中获得确认结果,您必须在JS端编写该代码。因此,为了更好地维护它,您可以在aspx中使用以下JS。

function ConfirmAndExecute()
{
    if(confirm("Are you sure?"))
    {
        OnConfirm();
    }
    else
        alert("you missed !")
}
function OnConfirm()
{
    // JS Code to handle post confirm operation
}

在服务器端,page_load,使用以下内容。

Page.ClientScript.RegisterStartupScript(this.GetType(), "msgbxConfirm", "ConfirmAndExecute();", true);

您也可以添加一个onclick客户端脚本事件句柄来阻止提交表单,除非确认为true,这样您就不必处理脚本注册了。只需将以下代码添加到您的asp:button定义中即可

<asp:Button id="btnSave" Text="Save" runat="server" OnClientClick="return confirm('Are you sure?');" />