繁体   English   中英

ASP.NET Web窗体应用程序中的确认框

[英]Confirm box in asp.net web form application

如果要保存而不上传图像,我想给用户警告并带有确认消息框。

用户单击保存按钮时代码触发

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);
}

上面的逻辑是用于显示确认框,但不显示。

除此之外,如果用户单击“ Yes或“ No按钮,如何捕获?

这样我就可以相应地触发相关代码。

更新:

我可以使用以下代码显示确认框

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

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

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

如果单击确定,它将返回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客户端脚本事件句柄,以防止提交表单,除非确认为真,否则您不必处理脚本注册。 只需将以下代码添加到您的asp:button定义中

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM