代码:ScriptManager.RegisterStartupScript(this.Page, this.GetType(), Guid.NewGuid().ToString(), " <script></script>", false); 
代码.....
代码.....
其中<script>中嵌套的是一个confirm,怎么才能我点击confirm的确定时,执行页面其余代码,否则不执行

解决方案 »

  1.   

    這種寫法似乎有點問題?
    通常彈出“confirm的确定时”是在處理某事情的情況這樣做。
    你何不給它寫個比如:
    加載頁面處寫上。。
    btn_del.Attributes.Add("onclick", "javascript:return   confirm('确定要删除嗎?');");
    當你點刪除按鈕時,彈出對話框,若點擊確定,會自動執行下面語句塊的代碼,反則不執行。。
     protected void btn_del_Click(object sender, EventArgs e)
    {
    執行刪除
    }
      

  2.   

    我的没有这么简单啊,您说的情况只用于当我点击该按钮的时候立刻询问用户是否要删除,直接是一个confirm
    如果用户“确定”继续执行方法,否则取消执行...
    我的是:当点击删除按钮时,执行服务器端的click事件,在其对应的方法中我判断用户是否选择了记录,如果没有选择,
    则通过RegisterManager注册一个客户端脚本alert('若要删除信息,请至少选择一条信息');
    如果选择了
    则通过RegisterManager注册一个客户端脚本confirm('删除信息后将不可恢复,确认删除吗?')
      

  3.   

    我告诉你吧你想服务器会执行到一半然后等客户端给一个信息再继续执行吗?这又不是CS....当然可以有其他方法实现这种功能。。最常见的答案就是ajax....另外一些不常见的答案我不告诉你你自己想去
      

  4.   


    <script language="javascript" type="text/javascript">
    // <!CDATA[
    function CheckFunction()
    {
        //沒有選擇任何資料
        if(1==1)
        {
            alert("要刪除資料,至少選擇一條信息");
            return false;
        }
        else
        {
            confirm("你確定要刪除嗎");
        }
    }
    // ]]>
    </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
    protected void Button1_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "edit", "CheckFunction()", true);
        }
      

  5.   

    大哥,关键是我的判断是在cs中不是在aspx页面上啊,这不行!
      

  6.   

    你自己写的注册javascript方法,我完全是配合你写的function.
      

  7.   

    会写存客户端脚本,JQuery用的特别熟练,但是代码量太大了
      

  8.   

        protected void btn_Click(object sender, EventArgs e)
        {
            if (3 > 2)
            {
                ScriptManager.RegisterStartupScript(this.Page, this.GetType(), Guid.NewGuid().ToString(), "<script>if(confirm('a?'){怎么调用Please()方法})</script>", true);
            }
        }    protected void Please()
        {
            //做删除操作
        }
      

  9.   

    我晕,前台后台这么好调,还用Ajax做什么
    你拿webservice做伪后台,用js来调webservice的function。
      

  10.   


    return Confirm("OK?");
      

  11.   

    回复22楼:
    protected void btn_Click(object sender, EventArgs e) 
        { 
            if (3 > 2) 
            { 
                ScriptManager.RegisterStartupScript(this.Page, this.GetType(), Guid.NewGuid().ToString(), " <script>if(confirm('a?'){"+this.Please()+"}) </script>", true); 
            } 
        }     protected int Please() 
        { 
            //做删除操作 
        }这种方式就对!
      

  12.   

    我看你就是什么都不会,装。这样,如果你这里的 if(3>2)比较好写,你就在Button的OnClientClick事件中做判断.
    <script language="javascript" type="text/javascript">
            function Check()
            {
                //打个比方,检查是不是小数
                var str = form1.txtNumberOnly.value;
                var num = str.match(/^\d+(\.\d+)?$/);
                 if(num != null)
                {   
                    alert("格式正確");
                    return true;
                }
                else
                {
                    alert("格式不正確");
                    return false;
                }
            }
        </script>
    <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="txtNumberOnly" runat="server"></asp:TextBox>
            <asp:Button ID="btnSubmit" runat="server" Text="Button" OnClick="btnSubmit_Click" OnClientClick="if(!Check()){return false;};" />
        </div>
        </form>这样如果不判断错误,则不再执行后台代码。
    如果你的if(3>2)比较难写,你可以在if(confirm('a?'){给隐藏控件赋true;})否则赋false,然后在后台取这个隐藏控件的值,是true就继续,false就return; 
      

  13.   

    老大,给你纠正个错误,在客户端引用服务器端控件时应该是:
    document.getElementById("<%=txtNumberOnly.ClientID%>")才对
      

  14.   

    = =# document.getElementById()众多写法中的一种
    贻笑大方。。
      

  15.   

    大哥们:      关键是我的判断条件是从Repeater中取用户选中的CheckBox的个数,我怎么以一种简便的方式在js里去用户选中的呢?之前我考虑过用document.getElementsByTagName("input")获得repeater下所有的checkbox,再进行判断是否选中,如果选中个数为0则
    alert('若要删除邮件,请至少选择其中一封!');return false;否则再提示if(confirm("删除邮件后将不可回复,确认继续吗?")){return true}else{return false;}
    代码:
    function check()
    {
       var mycheck=document.getElementsByTagName("input");
       int total=0;//记录用户选择的个数
       for(var i=0;i<mycheck.length;i++)
       {
          if(mycheck[i].tagName=="checkbox")
          {
              if(mycheck[i].checked)
              {
                  total++;
              }
          }
       }
       if(total>0)
       {
          return false;
       }
       else
       {
          if(confirm("删除邮件后将不可恢复,确认删除吗?"))
          {
             return true;
          }
          else
          {
             return false;
          }
       }
    }
      

  16.   

    你这样写还有什么问题吗?加个OnClientClick="if(!Check()){return false;}; 应该OK了。
      

  17.   

    我懂你说的意思,我做之前考虑过你说的方式。但是在GridView,DataList,Repeater,DetailsView等数据绑定控件中所嵌套的<asp:CheckBox/>不能通过
    document.getElementsByName("")去取,我上面写的是有很多瑕疵的,比如说,目标页面上有N个form,每个form中又有n个checkbox
    这下我的total不就不行了么!我还得过滤...
      

  18.   

    那你这个帖子的问题已经解决了。
    你现在的问题是如何判断Repeater中有无CheckBox选中的问题...你在后台Button事件中遍历一遍Repeater,看看是否选中,这个在后台还是很好做的,得出Count。
    如果Count==0,return;
    否则去前台做if(confirm)的动作,这里你可能需要一个隐藏控件。如果Confirm了,你在JS中给隐藏控件赋一个值,如1,否则赋0。这个时候又会回到后台做后续动作,此时你再判断此隐藏控件是1还是0,是0就return,是1继续……
      

  19.   


    protected void btnCommit_Click(object sender, EventArgs e)
     {      //定义Count = 0;略
            foreach (GridViewRow myRow in GridView1.Rows)
            {
                CheckBox myCheckBox = (CheckBox)myRow.Cells[0].FindControl("chkSelect");
                if (myCheckBox.Checked)
                {
                   Count++;
                }
            }
            if (Count == 0)
                return;
            //去前台Confirm.其实就是给HiddenCheck赋值....
            if (HieddnCheck.Value == "1")
            {
                //Do what you wanna do
            }
            else return;
     }
           function Check()
           {
               if(Confirm)
               {
                   document.getElementid("HiddenCheck").Value = 1; 
               }
               else
               {
                   document.getElementid("HiddenCheck").Value = 1;
               }
           }
    随手写的,代码肯定有错,思路就是酱紫的,包对.
    不给俺分就真的对不起俺鸟.....
      

  20.   


               else
               {
                   document.getElementid("HiddenCheck").Value = 0;
               }
      

  21.   

    if (selected == 0)
            {
                ScriptManager.RegisterStartupScript(this.btnRead, this.GetType(), Guid.NewGuid().ToString(), "<script>alert('要将邮件标记为已读,请至少选择其中一封!')</script>",false);
            }
            else
            {
                //设置为已读
                ScriptManager.RegisterStartupScript(this.btnRead, this.GetType(), Guid.NewGuid().ToString(), "SetRead()",true);
                //我SetRead()方法就一个confirm;如果为true,则设置hiddenfield的值为1   false,hiddenfield.value=0;
                //刚开始程序走到这里value为""(程序会把下面的代码执行完毕后才弹出confirm的啊...)
                if (this.hfread.Value == "1")
                {
                    try
                    {
                        outmailid = outmailid.Substring(0, outmailid.Length - 1);
                        int flag = mail.SetRead(outmailid);
                        if (flag > 0)
                        {
                            //成功(重新刷新页面)
                            //this.Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "<script>document.location.href='PerMailList.aspx?mailboxid="+MailBoxID+"';</script>");
                            //ScriptManager.RegisterStartupScript(this.btnRead, this.GetType(), Guid.NewGuid().ToString(), "<script>document.location.href='PerMailList.aspx?mailboxid=" + MailBoxID + "';</script>", false);
                            GetMailByID();//重新构造repeater中的内容
                        }
                        else
                        {
                            //失败
                        }
                    }
                    catch (Exception)
                    {                }
                }
                else
                {
                    return;
                }
            }