【问题标题】:Getting a Confirmation Box to appear and get its value in the code behind让一个确认框出现并在后面的代码中获取它的值
【发布时间】:2012-06-13 18:44:20
【问题描述】:

这就是我想要做的。我有一个用户填写的表单(创建部分和子部分),当他们单击保存时,我想检查数据库以查看他们是否将一个部分命名为与已经存在的部分相同。如果他们有,我想从他们那里得到确认,让他们知道如果他们继续,他们将创建一个副本。如果他们点击是,我需要继续,否则我需要中止。这是我目前所拥有的一些伪代码。

 protected void SaveButton_Click(object sender, EventArgs e)
{
    try
    {
        if (CheckForDuplicates())
        {
            //proceed normally
        }
    }
}

private bool CheckForDuplicates()
{
    //check database

            if (/*there are duplicates*/)
            {
                string message = "A duplicate name exists. Would you like to continue?";
                string scriptString = "<script language='javascript' 
                    type='text/javascript'>" + "return confirm('" + message + "');</script>";

                ScriptManager.RegisterStartupScript(this, this.GetType(), 
                    "script", scriptString, false);

                //here i would like to return their confirmation
            }
        }
    }
    return true;
}

感谢所有帮助,并提前致谢!

【问题讨论】:

    标签: c# javascript asp.net confirmation


    【解决方案1】:

    添加 Javascript,如果用户确认,您可以调用 JavaScript __doPostBack('','UserConfirmed'); 函数。只需在您的代码隐藏中添加逻辑以及您正在向 ScriptManager 注册的确认逻辑。当回发发生时,您可以检查以确保回发实际上是由用户的确认发起的(而不是页面上的某些其他操作):

    public void Page_Load(object sender, EventArgs e)
    {
      string parameter = Request["__EVENTARGUMENT"];
      //if parameter equals "UserConfirmed"
      //       User confirmed, so do whatever
      //
    }
    

    关于__doPostBack的信息:Understanding the JavaScript __doPostBack Function

    【讨论】:

    • 谢谢!我对 _doPostBack 有点困惑,但您的链接确实有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多