获取确认框并在后面的代码中获取其值

时间:2012-06-13 18:44:20

标签: c# javascript asp.net confirmation

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

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

所有帮助都表示赞赏,并提前致谢!

1 个答案:

答案 0 :(得分:0)

添加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