在过去的两个小时里,我一直在浏览与此问题相关的每个页面或YouTube视频,但我找不到解决方案。
问题:
我有一个ASP.NET 4.5 Web应用程序,其中包含一个用户可以添加一些数据的表单,我有一个按钮,我想将数据保存在数据库中。 当用户按下此按钮时,我要做的第一件事就是搜索是否已存在特定项目的记录。如果有,我想显示一个确认框,让我知道:"此记录已经存在。你想更新吗?"。如果用户按YES,我想进行更新,否则我会进行INSERT。问题在于这个该死的确认框。
到目前为止我所拥有的:
在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>
我添加了一个按钮:
<asp:Button ID="alertBtn" runat="server" OnClientClick = "Confirm()" OnClick="OnConfirm" Text="" style="display:none"/>
如果我删除样式并运行应用程序,当我点击此按钮时,它可以完美地运行。确认框出现,当我点击YES时它调用一个函数,当我点击NO它调用另一个函数。
但是如何从代码中单击此按钮? 什么都行不通!
我尝试过:
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
如果有人有任何建议请分享,请在评论前仔细阅读该帖子。
我试着尽可能地解释这个问题。
所以我只想从后面的代码做一个Button.Click,以便触发Confirm()方法,这将打开一个确认框,在我点击YES / NO后,OnConfirm方法来自服务器应根据此YES / NO值调用适当的函数。如果除了使用按钮之外还有其他解决方案,我可以接受新想法。
更新:为了更好地解释我的问题,我添加了以下链接:Demo 这就是我现在拥有的。我想要实现相同的目标,而无需单击按钮,只需从代码中完成。
谢谢!