我先详细的说说我这个东东啊!弹出对话框其实不难 有response.write();但是呢,现在我用的UpdatePanle,这样response.write()就不好使了。但是我知道有ScriptManager.RegisterOnSubmitStatement(UpdatePanel2, this.GetType(), "test", "return window.confirm('您已选择了两个测点,如果在选择,原来测点将会清空!')");现在问题出来了,我这个方法不是删除的,所以不是Button上的。是CheckBoxList 子项选中之后弹出这个,但是我不能确定的是:我如何确定用选择的【是】Or【否】。我想在我代码中做判断If(shi){wo d cao zuo}else{wo liwai d caozuo}但是我就是不知到怎么实现!不跟那个Java貌似有个MessageBox啊,哎 ,就这么个东东搞了一天,丢人啊!所以请高手给我解答啊,最好贴成功的代码!让我见识下!不管是谁,一经采纳 100 分!谢谢了......

解决方案 »

  1.   

    自己写个对话框窗口,或者用DIV
      

  2.   

    用基于jquery的thickbox
    非常好用
    http://www.jb51.net/article/15620.htm
      

  3.   


    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:Button ID="btnCallBack" runat="server" Text="回发并弹出confirm" OnClick="btnCallBack_Click" />
        <asp:Button ID="btnHid" runat="server" OnClick="btnHid_Click" Width="0px" />
        <asp:HiddenField ID="hid" runat="server" />
        </div>
        </form>
    </body>
    </html>
     protected void btnCallBack_Click(object sender, EventArgs e)
        {
            string js = string.Format("document.getElementById('{0}').value=confirm('是否确认?');document.getElementById('{1}').click();", hid.ClientID,btnHid.ClientID);
            ClientScript.RegisterStartupScript(GetType(), "confirm", js, true);
        }
        protected void btnHid_Click(object sender, EventArgs e)
        {
            string result = hid.Value.ToLower() == "true" ? "是" : "否";
            Response.Write(string.Format("您选择的是{0}",result));
        }
      

  4.   

    protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
        {
           string i= CheckBoxList1.SelectedValue;
           string js="if(confirm('您已选择了两个测点,如果在选择,原来测点将会清空!'))alert('123');";
           switch (i)
           {
               case "1":
                   ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "pop", js, true);
                   //ScriptManager.RegisterOnSubmitStatement(UpdatePanel1, this.GetType(), "pop1", "if(confirm('您已选择了两个测点,如果在选择,原来测点将会清空!')){alert('123')}");
                   break;
               case "2":
                   break;
               default:
                     //xxx
                   break;
           }
        }非常遗憾。这样做只能一直运行js代码,貌似不能运行服务器端代码。
    建议楼主还是手动去实现ajax吧。也不难。或者用户点击确定以后就直接跳转到某个页面,在那个页面进行操作。
      

  5.   

    后台        protected void Page_Load(object sender, EventArgs e)
            {
                this.btn.Attributes["onclick"] = "return confirm('想不想吃饭');";
            }前台<head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
         <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
          <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
          <ContentTemplate>
          <asp:Button ID="btn" Text="aaa"  runat="server"/>
          </ContentTemplate>
          </asp:UpdatePanel>
        <div>
        
        </div>
        </form>
    </body>
    </html>
      

  6.   

    return confirm('想不想吃饭');这里可以写老复杂的代码.但是是前台代码.返回bool值就行
      

  7.   

    使用了updatepanle的话,最好配合.framework 3.5,因为它里面提供了专门对应的处理js操作的类。
    我以前碰到过这样的问题。我用.framework 2。0执行客户端事件有很多问题。。
      

  8.   


    这个方法是不错的,界面方面也可以做得比较漂亮,楼主随便到网上查一下弹出DIV层就有很多类似的例子了。
      

  9.   

    较简单的代码,自己写的:        #div1
            {
                background: #fff4c8;
                border: 2px solid #ffcd00;
                overflow: hidden;
                position: absolute;
                cursor: move;
                float: left;
                z-index: 10;
            }
     <input type="button" value="弹出层" onclick='ShowDiv("none")' />
        <div id="div1" style="display: none; font-size: 30px" align="center">
            您已选择了两个测点,如果在选择,原来测点将会清空!<br />
            <asp:Button ID="Button3" runat="server" Text="确定" />
            <input type="button" onclick='ShowDiv("block")' value="取消" />
        </div>function ShowDiv(status) {
                var div1 = document.getElementById("div1");            if (status == "none") {
                    div1.style.display = "block";
                }
                else { div1.style.display = "none"; }
            }
    点击确定就执行你自己的方法,取消就关闭层或者你自己的操作。
      

  10.   

    String scriptText = "if(confirm(?') _doPostback('button1','');"; 
    ClientScript.RegisterOnSubmitStatement(this.GetType(), 
    "ConfirmSubmit", scriptText);
    document.getElementById("button1").click();
    或通过赋值给隐藏域名、取值再执行
      

  11.   

    根据Sandy945的又改进了点   <form id="form1" runat="server">
        <div>
         <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
          <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
          <ContentTemplate>
          <asp:Button ID="btn" Text="提交"  runat="server"/>
          
           <asp:Button ID="btn2" runat="server" Text="Button"  style="display:none"   OnClick="btnHid_Click"/>
            <asp:HiddenField ID="hid" runat="server" />
               <asp:Label ID="lblMessage" runat="server" Text="" Visible="false"></asp:Label>
          </ContentTemplate>
         
          </asp:UpdatePanel>
        
          </div>
        </form> protected void Page_Load(object sender, EventArgs e)
            {
                string js = string.Format("document.getElementById('{0}').value=confirm('是否确认?');document.getElementById('{1}').click();return false;", hid.ClientID, btn2.ClientID);
                this.btn.Attributes["onclick"] = js;        }
            protected void btnHid_Click(object sender, EventArgs e)
            {
                string result = hid.Value.ToLower() == "true" ? "是" : "否";
                //你在这里做你想做的事情吧?!!!
                this.lblMessage.Text = result;
                this.lblMessage.Visible = true;
            }
      

  12.   

    也可根据选择调用js
    使用jquery弹出模式窗口,执行相关操作
      

  13.   

    直接在前台HTML里写js, return confirm('Are you sure?');又或者,可以使用asp.net ajax toolkit 或者jquery
      

  14.   

    cbkChooles.Attributes.Add("onclick", "return confirm('确定要删吗?');");
      

  15.   

        protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string i = CheckBoxList1.SelectedItem.Value;
            switch (i)
            {
                case "1":
                    ScriptManager.RegisterStartupScript(UpdatePanel1, GetType(), "key1", "confirm1()", true);
                    break;
                case "2":
                    ScriptManager.RegisterStartupScript(UpdatePanel1, GetType(), "key2", "confirm2()", true);
                    break;
                default:
                    ScriptManager.RegisterStartupScript(UpdatePanel1, GetType(), "key0", "confirm0()", true);
                    break;
            }
        }    function confirm1()
        {
            if(confirm('go on ?'))
            {
                var a = "<%= ss1() %>";
                alert(a);
            }
            else
            {
                return false;
            }
        }
        public string ss1()
        {
            return "abc111";
        }
      

  16.   

    我也遇到了这个问题,最后使用label显示状态了。客户端弹出对话框,在使用UpdatePanel的情况下,的确比较棘手。解决对策,我也在等待。