【问题标题】:How to get confirm box return value in ASP.NET C#如何在 ASP.NET C# 中获取确认框返回值
【发布时间】:2016-08-22 07:08:48
【问题描述】:

我知道很多人已经问过类似的问题。我已经阅读了大量的答案,但似乎没有一个能解决我的问题。 我有一个表单,允许用户选择一个文件并选择应该从中导入文件的日期。当日期小于(之前)最后一个导入期(这是数据库中跟踪最后导入日期的字段)时,我想显示一个confirmbox 以提醒用户继续导入可能会覆盖一些数据。用户可以选择是继续导入或选择否取消导入。我试过了

onClientClick

方法

asp:按钮

控制。问题是,它会立即在用户单击提交按钮时被触发,并且我不想显示确认框,直到我检查了将在服务器端 C# 上完成的最后一个导入期。我曾尝试将返回值写入这样的隐藏字段:

if (confirm("This Import Process Will Overwrite Existing Data. Do You Want to Continue?")) {
            document.getElementById("ans").value = "Yes";
            return true;
        } else {
            document.getElementById("ans").value = "No";
            return false;
        }

那也没用。我已经尝试过这里的解决方案:Javascript confirm message problem

不知何故,我似乎无法让它与我的解决方案一起使用,因为他们正在使用一些 updatePanel。我只使用DatePickerDropDownList(用于选择要为其导入数据的客户端)和隐藏字段(如果需要)。如果可以的话请帮忙。我可以是上述任何一个的调整或一个全新的解决方案。谢谢。

【问题讨论】:

  • 在我看来,一旦单击 button,就会提交表单,因此在隐藏字段中传递的值就是使用的值。一旦提交,几乎不可能改变它。我的观察虽然

标签: javascript c# asp.net confirm


【解决方案1】:

试试这个,它对我来说很好用:

    var c = confirm('Your message');
    if (c == true) 
    {
        document.getElementById('<%= HiddenField1.ClientID %>').value = 1;
    }
    else 
    {
        document.getElementById('<%= HiddenField1.ClientID %>').value = 0;
    }

您可以在后面的代码中访问 HiddenField。

【讨论】:

  • 让我现在试试这个。
  • 您的解决方案不能解决我的问题。它只是继续选择默认操作,甚至不显示确认框
  • 你什么时候调用这个javascript的??
  • ScriptManager.RegisterStartupScript(this, this.GetType(), "ajax", "ConfirmOverWrite();", true); if (int.Parse(ans.Value) == 1) { Session["msg"] = "Import Process Done"; Response.Redirect("ClientImpressions.aspx"); } else { Session["msg"] = "导入过程取消"; Response.Redirect("ClientImpressions.aspx"); }
  • 以上是正在做的事情。如果我注释掉if condition,它会显示确认框,但如果我把它留在那里,它会抛出错误“无法解析整数...”。
【解决方案2】:

试试这个..你会得到隐藏字段的值是或否

<script type="text/javascript">
    function ShowConform() {
        var confirm_value = document.createElement("INPUT");
        confirm_value.type = "hidden";
        confirm_value.name = "confirm_value";
        if (confirm("Do you want to save data?")) {
            confirm_value.value = "Yes";
        } else {
            confirm_value.value = "No";
        }

        var cn = document.forms[0].appendChild(confirm_value).value;
        //alert(cn);
         var c=document.getElementById('<%= hiddenfeid.ClientID %>').value
         c = cn;
        // alert(c);

    }

</script>

【讨论】:

  • 好的。现在,我将如何获得返回值(真或假)?因为我使用ScriptManager 来调用后面代码的确认框
猜你喜欢
  • 1970-01-01
  • 2012-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
相关资源
最近更新 更多