【问题标题】:open a confirmation dialog from code behind从后面的代码打开一个确认对话框
【发布时间】:2018-03-26 04:57:06
【问题描述】:

我有一个按钮点击事件,在满足某些条件后,我应该确认对话框,如果用户在该对话框中点击确定,我想在我的代码中继续进行。

public void imgValidAdd_Click(object sender, ImageClickEventArgs e)
{
  try
  {
     // Some Code
     if(A==b)
     {
        // Open Confirm dialog
        if(ok)
        {
           // Proceed
        }
     }
  }
  catch()
  {
  }
}

我尝试了很多方法,但都没有成功

How to call confirm message from code behind in asp.net?

在上面的链接中,我尝试并实现了,但问题是,如果你不回发页面,它就不起作用,因为 appendChild 命令不会清除以前的值

我如何处理这个问题。帮我解决这个问题。

【问题讨论】:

    标签: javascript c# asp.net


    【解决方案1】:

    你可以这样做:

    在aspx端

    1) 添加确认点击按钮

    hidden button
    <asp:Button ID="btnConfirmed" runat="server" OnClick="btnConfirmed_Clicked" style="display:none"/>
    

    2) 为确认对话框添加 javascript 函数

    //Add a javascript openconfirmdialog() on aspx
    function openconfirmdialog() {
        if(confirm('Confirm message')) {
            //fire hidden button click
            $('#<%=btnConfirmed.ClientID%>').click();
        } else {
            //else message
        }
    }
    

    在 aspx.cs 服务器端

    3) 使用 Page.ClientScript 从服务器端触发 javascript 函数

    public void imgValidAdd_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            // Some Code
            if(A==b)
            {
                // Open Confirm dialog
                Page.ClientScript.RegisterStartupScript(typeof(Page), "openconfirmjs", "<script>openconfirmdialog();</script>");
            }
        }
        catch()
        {
        }
    }
    

    4) 添加确认按钮点击方法

    public void btnConfirmed_Clicked(object sender, EventArgs e) {
        // Proceed
    }
    

    【讨论】:

    • 您好 j4rey89,感谢您的帮助。正如我所料,您的解决方案工作得太完美了。在过去的 30 个小时里,我一直在努力寻找解决方案。我在你的代码中做了一个小改动,而不是 Page.ClientScript.RegisterStartupScript(typeof(Page), "openconfirmjs", "");我用过,ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "openconfirmdialog", "", false);
    • 是的,ScriptManager.RegisterClientScriptBlock 实际上会更好......如果我的回答解决了你的问题,请检查绿色勾号......谢谢
    【解决方案2】:

    你可以使用 window.confirm

    https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm

    if (window.confirm("Do you really want to ___?")) { 
      // do thing
    } else {
      // don't do thing?
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 2015-12-14
    • 2021-08-07
    相关资源
    最近更新 更多