【问题标题】:Implementing javascript confirm box in code behind C#在 C# 后面的代码中实现 javascript 确认框
【发布时间】:2016-05-13 22:54:21
【问题描述】:

我想从后面的代码中实现 javascript 确认框。

我的要求是我需要提出一个确认框的方法,根据我需要实现差异功能的结果

例如;

如果确认框确定则添加税金

如果取消则不加税

我正在尝试这样的事情,但它对我没有帮助

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "confirm", "confirm('Add tax');", true);

谁能帮忙。

我的示例代码是

protected void Button1_Click(object sender, EventArgs e)
{
    Double mrp = 200.00;

    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "confirm", "return confirm('Add Tax');", true);
    if (Confirm == "Ok")
    {
        //Add tax to mrp
    }
    else
    {
        //No tax for mrp
    }
}

谢谢你..

【问题讨论】:

  • 这样写就可以得到值形式确认框。意味着你不会得到天气用户按下了确定或取消。
  • 您能否提供更多详细信息。表示按钮在网格内还是其他地方?
  • 它在网格之外@Shekhar ...
  • 你需要解释一下它的结构和你到底想要什么?
  • 您希望单击按钮时的值在哪里?能多解释一下就更好了。

标签: asp.net c#-4.0


【解决方案1】:

你能不能这样试试:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type = "text/javascript">
        function Confirm() {
            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";
            }
            document.forms[0].appendChild(confirm_value);
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
      <asp:Button ID="btnConfirm" runat="server"
                  OnClientClick = "Confirm()"
                  OnClick="OnConfirm" 
                  Text="Raise Confirm"/>
    </form>
</body>
</html>

获取用户输入服务器端

现在服务器端我们需要获取我们存储在动态隐藏字段中的用户输入,然后根据他是否选择了确定或取消,我们需要执行不同的代码。

public void OnConfirm(object sender, EventArgs e)
{
    string confirmValue = Request.Form["confirm_value"];
    if (confirmValue == "Yes")
    {
        //Your logic for OK button
    }
    else
    {
        //Your logic for cancel button
    }
}

来自Server Side (Code Behind) Yes No Confirmation Message Box in ASP.Net

【讨论】:

  • 是的,目前我正在按照您建议的方式实现它。那么,这是我们实现此功能的最佳方式吗???
  • 我认为是这样。根据您的要求,我认为这是最好的方法。并且不要忘记将其标记为它对您有帮助的答案。谢谢你。
【解决方案2】:

您可以使用ScrptManager 喜欢:

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "confirm", "return confirm('Your massage to be Displayed.');", true);  

您可以参考link 了解更多详情。

或者你可以这样尝试。

ScriptManager.RegisterStartupScript(this, typeof(string), "Message", "if(confirm('Sorry, but there is already a Primary Stakeholder assigned to this ticket. Would you like to replace the existing data?')){alert('OK');}else{alert('cancel');}",true);

在adove代码中如果用户按下OK按钮,它将显示带有消息OK的警告框,否则它将显示带有消息Cancel的警告框。

ScriptManager.RegisterClientScriptBlock(this, GetType(), "__Mensagem", "if (confirm('" + CustomMessage+ "')){$(\"#" + btnSave.ClientID + "\").click();}", true); 

你可以试试这个。在这种情况下,如果确认返回 true,则返回按钮的单击事件。

【讨论】:

  • 你能告诉我如何获得确认框的值,即是确定还是取消
  • 检查我在答案中的链接。
  • @RahulGokani 这对他没有帮助,因为他将能够知道正在按下哪个确认按钮。
  • @Shekhar Confirm 只返回真或假。在第二个代码中,它表明如果它为真,那么它将执行真语句或进入 else 语句。不是按下哪个按钮。
  • 你是对的,但他将如何在 C# 中获得价值?因为他会喜欢写代码?
【解决方案3】:

请尝试以下操作:

Double mrp = 200.00;
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("var x=''; var r=confirm('Press a button!');");
sb.Append("if (r==true){alert('ok'); x='" + mrp + "';}");
sb.Append("else{ alert('cancel');}");
sb.Append("document.getElementById('demo').innerHTML=x;");
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "confirm", sb.ToString(), true);

aspx 页面:

<p id="demo"></p>

【讨论】:

  • 实际上我的要求是从源代码后面做。目前我只是像这样实现它。但我试图找到一个解决方案,其中所有东西都在源代码后面
  • @Cherry:我改变了答案。您可以直接在页面中编写 javascript 代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多