Javascript 我的C#代码在再次单击之前不会运行
我在ASP中调用c#方法中的JS函数,这是我的html:Javascript 我的C#代码在再次单击之前不会运行,javascript,c#,Javascript,C#,我在ASP中调用c#方法中的JS函数,这是我的html: <asp:Button runat="server" id="Button1" CssClass="btns" Text="test confirm delete" OnClick="testDelete"/> 这是JS函数 function testDel() { document.getElementById("hc2").value = confirm("you want to delete?").toString
<asp:Button runat="server" id="Button1" CssClass="btns" Text="test confirm delete" OnClick="testDelete"/>
这是JS函数
function testDel() {
document.getElementById("hc2").value = confirm("you want to delete?").toString();
console.log(document.getElementById("hc2").value);
}
正如您在JS函数中所看到的,我将确认值分配给html的“hc2”元素,我在C#code中使用相同的元素来检查用户是否单击了YES或CANCEL,如果用户单击了OK,则警报和SQL查询将运行
将确认值指定给“hc2”元素会起作用,但在我再次单击按钮之前,警报不会起作用 这里有一点JavaScript可以用来替换代码隐藏逻辑。获得确认后,通过JavaScript调用codebehind函数 html: 和代码隐藏:
protected void BtnYes(object sender, EventArgs e) {
//sql stuff goes here
}
这里有一些JavaScript可以用来替换代码隐藏逻辑。获得确认后,通过JavaScript调用codebehind函数 html: 和代码隐藏:
protected void BtnYes(object sender, EventArgs e) {
//sql stuff goes here
}
RegisterStartupScript
是否实际运行您的测试方法,还是只是注册它?它实际运行测试方法,因此这里的问题是testDelete
是一个需要post的服务器端函数。在初次单击时,由于html元素还没有被触及,所以只注册第一个启动脚本。在第二次单击时,服务器接收到经过修改的值并注册两个启动脚本。我建议通过ajax调用而不是服务器端发布来完成这项工作。这种服务器端与客户端的混淆在Web表单中非常常见。您在使用的技术方面有选择吗?我强烈建议避免使用Web表单。这是一项过时的技术。如果你不能转换为MVC,因为它太多了,我会考虑在JavaScript中做所有这些,然后当用户点击Yes(我确信),然后从java脚本调用一个SQL的隐藏ASP按钮。或者它只是注册它?它实际上运行测试方法,所以这里的问题是testDelete
是一个需要post的服务器端函数。在初次单击时,由于html元素还没有被触及,所以只注册第一个启动脚本。在第二次单击时,服务器接收到经过修改的值并注册两个启动脚本。我建议通过ajax调用而不是服务器端发布来完成这项工作。这种服务器端与客户端的混淆在Web表单中非常常见。您在使用的技术方面有选择吗?我强烈建议避免使用Web表单。这是一项过时的技术。如果你不能转换为MVC,因为它太多了,我会考虑在JavaScript中做所有这些,然后当用户点击Yes(我确信),然后从java脚本调用一个SQL的隐藏ASP按钮。
function testDelete() {
var x = 0;
var y = 2;
var res = x + y;
if (res > 1) {
var rslt = confirm("Do you want to delete?");
}
if (rslt == true) {
document.getElementById("BtnYes").click();
} else {
// block of code to be executed if the condition is false
}
}
protected void BtnYes(object sender, EventArgs e) {
//sql stuff goes here
}