Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的C#代码在再次单击之前不会运行_Javascript_C# - Fatal编程技术网

Javascript 我的C#代码在再次单击之前不会运行

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中调用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();
  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
}