C# ASP.NET Web应用确认框-按钮。单击

C# ASP.NET Web应用确认框-按钮。单击,c#,asp.net,C#,Asp.net,在过去的两个小时里,我一直在浏览我能找到的与这个问题相关的每个页面或youtube视频,但我找不到解决方案 问题: 我有一个ASP.NET 4.5 web应用程序,其中包含一个表单,用户可以在其中添加一些数据,我有一个按钮,希望将数据保存在数据库中。 当用户按下此按钮时,我要做的第一件事是搜索是否已经存在特定项目的记录。如果有,我想显示一个确认框,让用户知道:“此记录已经存在。是否要更新?”。如果用户按YES,我想进行更新,否则我将进行插入。问题是这个该死的确认框 到目前为止,我所拥有的: 在a

在过去的两个小时里,我一直在浏览我能找到的与这个问题相关的每个页面或youtube视频,但我找不到解决方案

问题:

我有一个ASP.NET 4.5 web应用程序,其中包含一个表单,用户可以在其中添加一些数据,我有一个按钮,希望将数据保存在数据库中。 当用户按下此按钮时,我要做的第一件事是搜索是否已经存在特定项目的记录。如果有,我想显示一个确认框,让用户知道:“此记录已经存在。是否要更新?”。如果用户按YES,我想进行更新,否则我将进行插入。问题是这个该死的确认框

到目前为止,我所拥有的:

在aspx.cs中:

public void OnConfirm(object sender, EventArgs e)
{
    string confirmValue = Request.Form["confirm_value"];
    if (confirmValue == "Yes")
    {
    Response.Write("YES");
    }
    else
    {
    Response.Write("NO");
    }
}
在aspx中,我有:

<script>
    function Confirm() {
        var confirm_value = document.createElement("INPUT");
        confirm_value.type = "hidden";
        confirm_value.name = "confirm_value";
        if (confirm("Record already exists. Do you want to update it?")) {
            confirm_value.value = "Yes";
        } else {
            confirm_value.value = "No";
        }
        document.forms[0].appendChild(confirm_value);
    }
</script>

函数确认(){
var confirm_value=document.createElement(“输入”);
确认\u value.type=“隐藏”;
确认价值。name=“确认价值”;
if(确认(“记录已存在。是否要更新它?”){
确认\u value.value=“是”;
}否则{
确认\u value.value=“否”;
}
document.forms[0].appendChild(确认值);
}
我添加了一个按钮:

<asp:Button ID="alertBtn" runat="server" OnClientClick = "Confirm()" OnClick="OnConfirm" Text="" style="display:none"/>

这就是我现在拥有的。我想实现同样的事情,而不必点击一个按钮,只是从代码


谢谢大家!

两者都是……js代码负责创建确认框,服务器代码负责获取是/否输入,并将流重定向到appropiate方法。这个按钮似乎就是通过OnClientClick和OnClick参数来实现的。我认为您正在尝试将服务器端的逻辑与客户端的逻辑混合起来。如果要从服务器执行JS确认方法中的代码,则需要在客户端呈现Javascript。这是很难混合的。您希望何时提出该方法?也许我们可以找到一种只在客户机上执行此操作的方法。什么触发了呼叫或者至少先执行客户机逻辑,然后跳转到服务器逻辑。嗯..我正在服务器上执行一个sqlcommand,检查数据库中是否存在当前记录。如果记录已经存在,我就想问用户它想做什么。更新它?是/否但检查数据库中是否存在记录也会在用户单击按钮时发生?或者何时触发?是的……在将一些数据添加到表单中后,我有一个保存记录按钮。当它推送它时,首先会检查它是否已经存在。js代码负责创建确认框,服务器代码负责获取是/否输入,并将流重定向到appropiate方法。这个按钮似乎就是通过OnClientClick和OnClick参数来实现的。我认为您正在尝试将服务器端的逻辑与客户端的逻辑混合起来。如果要从服务器执行JS确认方法中的代码,则需要在客户端呈现Javascript。这是很难混合的。您希望何时提出该方法?也许我们可以找到一种只在客户机上执行此操作的方法。什么触发了呼叫或者至少先执行客户机逻辑,然后跳转到服务器逻辑。嗯..我正在服务器上执行一个sqlcommand,检查数据库中是否存在当前记录。如果记录已经存在,我就想问用户它想做什么。更新它?是/否但检查数据库中是否存在记录也会在用户单击按钮时发生?或者何时触发?是的……在将一些数据添加到表单中后,我有一个保存记录按钮。当它推它时,它首先检查它是否已经存在。
1)    alertBtn.Click += new EventHandler(this.OnConfirm);//doesn't do anything
2)    ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "somekey", "Confirm();", true);//I was only able to run the Confirm() method, but it didn't call the OnConfirm method which is on the server. 
3)    Following step 2, I tried adding a call from js to c# in the Confirm() method: document.getElementById('<%=alertBtn%>).OnClick   //this didn't work either