在C#后面的代码中实现javascript确认框

时间:2013-03-28 05:30:36

标签: asp.net c#-4.0

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

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

例如;

如果OK确认框添加税

如果取消则不添加税

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

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
    }
}

谢谢..

3 个答案:

答案 0 :(得分:7)

你能尝试这样吗。:

<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>

获取用户输入服务器端

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

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

答案 1 :(得分:1)

您可以使用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按钮,它将显示包含确定消息的提示框,否则它将显示包含取消消息的提示框。

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

你能试试吗?如果确认返回true,则返回按钮的click事件。

答案 2 :(得分:0)

请尝试以下操作:

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>