btnPrintRe.Attributes.Add("onclick", "if(confirm('请核对发票号后选择是否继续?')){return true;}else{return false;}");我本来想用这段代码来控制下程序是否前进,但是有个问题,只有我点击btnPrintRe第二次的时候才起作用,而点第一次的时候程序就已经执行过去了.这是怎么回事,兄弟们帮我看看.

解决方案 »

  1.   

    你这段代码加什么地方的
    应该放在 Page_Load 里
      

  2.   

    按你说的现象,你可能把这个语句放在了button的后台事件里面了
    这样是不行的 
    你应该要放在page_load事件里面的
    if(!IsPostBack){这里}
      

  3.   

    谢谢楼上的两位兄弟,你们说的对,但是我现在是在一onclick事件里需要此功能,就是程序执行到中间的时候提示.如果这样写不行帮我看看应该怎样写,功能类似的.
      

  4.   

    你的想法是好的,但是一般都是前台事件先于后台事件触发,你说的这样只能将button后台事件给分离为两部分,一个是提示确认前的代码,一个是提示确认后的代码,你用两个按钮来做,而且顺序隐藏。我笨所以只能想出这个办法,不知道其他大大
      

  5.   

    btnPrintRe.Attributes.Add("onclick", "if(confirm('请核对发票号后选择是否继续?')){return true;}else{return false;}");这种写法不好,最好换成 btnPrintRe.Attributes.Add("onclick", "if(!confirm('请核对发票号后选择是否继续?' {return false;}");因为如果下一步还有别的方法要执行(诸如数据校验之类)的话,就会被return true 忽略过去了
      

  6.   

    呵,你弄清楚一下javascript和C#在你程序中都是充当什么位置C#在服务器端后台运行,运行完毕之后,生成一个html文档,这里面也包括生成的javascript脚本,然后这个html文档传到客户端,浏览器对其进行解析,解析过程中遇到javascript时解释执行。
    所以javascript和C#的运行是两个阶段。要达到你的效果,你可以在按钮执行前就confirm一次,也可以在后台的onClick事件里直接
    Response.Write("<script>if confirm('是否删除?')location='thispage.aspx?isdelete=1'; else location='thispage.aspx?isdelete=0';</script>");
    Response.End();
    也可以用ajax分两次执行,总之,弄清C#与javascript的运行位置,就好做选择了。
      

  7.   

    楼上的检查下你改的句子,少了括号,也没测试下
    如果说楼主这样写有缺陷还不如改成
    前台<head>标签内加个function check()
    {
       if(confirm('aa'))
        return true;
       else
        return false;
    }那么在page_load这样写咯
    btnPrintRe.Attributes.Add("onclick", "return check();");
    这样写才直观方便阅读