第一种方案: protected void Page_Load(object sender, EventArgs e)
    {
        btn1.Attributes.Add("onclick", "if(confirm(\"are you sure?\" )){alert('后台confirm执行');document.getElementById('hidvalue').value=\"1\";}else{return false;}");
    }
    protected void btn1_Click(object sender, EventArgs e)
    {        if (hidvalue.Value == "1")
            Response.Write("<script>alert('成功')</script>");
        else
            Response.Write("<script>alert('失败')</script>");
        hidvalue.Value == "0";        
    }首先在在页面上,防止一个runat="server" 的 button,
在放置一个隐藏域<input type="hidden" id="hidvalue" runat="server" />注意是也是runat server然后在页面的Page_Load的时候,把控件的js属性加上,也就是btn1.Attributes.Add("onclick", "if(confirm(\"are you sure?\" )){alert('后台confirm执行');document.getElementById('hidvalue').value=\"1\";}else{return false;}");
,如果confirm返回的是true,那么把隐藏域赋值为"1",然后在按钮的事件里面判断隐藏域的值就可以,也等于判断confirm返回的值。2:第二种方案:
直接在button加个属性,
 OnClientClick="confirm('确认要删除吗?删除后将不能恢复!')"呵呵,这个是最方便的,如果返回的false,就不会提交到服务器了。-----------------------自己老在想这个问题,今天终于实验了一把,不知道大家还有其他好的想法没有。

解决方案 »

  1.   

    直接给<asp:Button runat="server" onclick="return confirm('...')" />
      

  2.   

    或者在<form onsubmit="return confirm()"用<asp:Button>控件OnClick事件时,会在Page上自动生成下面这段脚本<script type="text/javascript">
    //<![CDATA[
    var theForm = document.forms['form1'];
    if (!theForm) {
        theForm = document.form1;
    }
    function __doPostBack(eventTarget, eventArgument) {
        if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
            theForm.__EVENTTARGET.value = eventTarget;
            theForm.__EVENTARGUMENT.value = eventArgument;
            theForm.submit();
        }
    }
    //]]>
    </script>
    即在form.submit的时候,判断 theForm.__EVENTTARGET 的值,即可知道是哪个元素触发了提交事件...
      

  3.   

    自己写一个弹出窗口, 最简单的方法就是用一个WEB窗体来做弹出窗口,这样就可以很容易的实现楼主的功能了
      

  4.   

    button有OnClientClick属性,加上你的confirm的js代码就可以了,如果返回false,click事件就不执行了。
      

  5.   

    楼上的有效
    OnClientClick="javascript:return confirm('*****');" 
      

  6.   

    扩展button,或者自定义控件,把prompt集成到服务器属性中,代码如下:
    private bool m_Prompt = false;
            [
            Description("to popup a Js Confirm Dialog at web side before the button submit to server "),
            Category("Misc"),
            DefaultValue(false)
            ]
            public bool Prompt {
                get { return m_Prompt; }
                set { m_Prompt = value; }
                }        private string m_PromptText;
            [
            Description("get/set the ConfirmText of the Js Confirm Dialog "),
            Category("Misc"),
            DefaultValue("")
            ]
            public string PromptText {
                get {
                    this.m_PromptText = MyHelper.ToString(this.m_PromptText);
                    if(this.m_PromptText == "" && this.Prompt) this.m_PromptText = "确实要删除选择的记录吗?";
                    return m_PromptText;
                    }
                set { m_PromptText = value; }
                }        protected override void OnLoad(System.EventArgs e) {
                base.OnLoad(e);
                if(this.Prompt && !this.Page.IsPostBack)
                    this.Attributes["onclick"] = "javascript:if(!window.confirm('" + this.PromptText + "')) return false;";
                }
      

  7.   

    使用时这样用:
    this.btnDelete.Text = "删除";
    this.btnDelete.Prompt = true;
    //覆盖默认提示信息
    this.btnDelete.PromptText="真的要删除啊?";