确认框OnClientClick在ASP.NET中

时间:2012-03-30 02:29:33

标签: c# asp.net confirmation onclientclick

我正在尝试在这个网站上工作,我需要过滤要插入数据库的数据。例如,我需要将“Hello World”插入数据库。但是,它已经存在。因此,我需要弹出一个确认框,说“字符串Hello World已经存在于数据库中。你确定要继续吗?”

我的问题是我不知道在我的代码中哪个位置应该包含我的确认消息。请参阅下面的参考资料:

private bool CheckData(string myString)
{
    //Check database if myString already exists. 
    return;
}

private void btnSave_Click(Object sender, EventArgs e)
{
    CheckData(myString)
    //If the above is true, then the confirmation box should appear.
    //Do something to save myString to the database.
}

我是使用以下代码以编程方式将OnClientClick事件处理程序添加到我的按钮:

btnSave.OnClientClick = "confirmation('The string " + myString + " already exists in the database. Are you sure you want to continue?')";

我的问题基本上是处理这种情况的最佳方法是什么?由于我无法将此代码放在btnSave_Click事件上(它将添加OnClientClick处理程序,但只会在下次单击该按钮时触发)。

3 个答案:

答案 0 :(得分:0)

通过ajax执行此操作,让onClientClick调用一个调用.net处理程序的js函数来检查文件是否存在,并且:或者:

  1. 如果不存在文件则返回true,因此发生回发
  2. 如果文件已存在,则弹出确认框并返回确认框的结果
  3. 否则,您可以检查文件是否存在于回发中,但是您必须显示一条消息和另一个确认按钮以允许用户覆盖该文件。如果用户决定上传并覆盖现有文件,它将创建两个回发。

答案 1 :(得分:0)

答案 2 :(得分:0)

//在程序中添加此功能

public static void ShowAlertMessage(string error)
{
        Page page = HttpContext.Current.Handler as Page;
        if (page != null)
        {
            error = error.Replace("'", "\'");
            ScriptManager.RegisterStartupScript(page, page.GetType(), "err_msg", "alert('" + error + "');", true);
        }
    }

//检查函数返回的值

private void btnSave_Click(Object sender, EventArgs e)
{
    bool flag=CheckData(myString);
    //If the above is true, then the confirmation box should appear.
    //Do something to save myString to the database.
if (flag==true)
{
ShowAlertMessage("The data Could not be added");
}
else
{
//do the desired operation of adding in the database.
}

}

希望有所帮助......