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