我在前台写了一段JAVA代码,用于打印前的预览输出,在预览前要执行一段后台的数据库操作 DealDB()
function preview()
{
  <%DealDB(); %>
  window.open('../review.htm');
}这段JAVA我放在了一个Input Button里面
<input type="button" value="打印" onclick="preview()" class="buttonprint" id="btnPrint" />我本意应该是点击这个Button之后,再运行DealDB()里面的事件但现在情况却是,这个页面生成之后,马上就执行DealDB()里面的代码。请教各位,我应该如何修改??

解决方案 »

  1.   

    http://www.cnblogs.com/wantingqiang/archive/2008/08/31/1280650.html
      

  2.   

    %里面的DealDB()在页面呈现时就执行了,页按钮是在呈现后才执行,这样做肯定达不到你的要求。可以这样做:1。点击按钮后,应发出一个请求给SERVER,并在服务器上执行DealDB()
    2。然后生成window.open('../review.htm'); 这个JS脚本,设为启动型的
      

  3.   


    谢谢朋友的帮助,小弟刚接触.NET不久,请问能说得详细点吗?如何发请求给SERVER执行DealDB()??
      

  4.   


    谢谢朋友的帮助,但我按他的做法1、添加一个不可见的button,将DealDB()放入他的OnClick事件中
    <asp:Button ID="Button1" runat="server" Text="Button" Style="display: none;" OnClick="Button1_Click"/>2、修改JAVA代码部分    function go()
        {
            document.getElementById("Button1").click();
        }
        
        function preview()
        {
          go();
          window.open('../review.htm');    
        }现在情况是,页面生成时的确没执行DealDB(),而且点击打印按钮时,也执行了数据库操作问题是,review.htm变成了空白的,按我的理解,是不是执行后台代码,review.htm的前台java代码就不执行了?我的review.htm中JAVA代码如下:
    function ponload() 

        var printArea=opener.document.all.printArea; 
        window.document.body.innerHTML = printArea.innerHTML; 
        window.focus(); 
        window.print(); 
    }
    </script> 
    </head>
    <body onload="ponload()"></body>
      

  5.   

    谢谢各位的帮助,自己搞定了必须加入一个AJAX才行!希望对后来者有说帮助!!