如题。问题是:根据条件查询出结果,再将结果打印出来,做成弹出页面,主要是实现打印预览,后再打印。这是 我的思路?希望高手指点?等待...

解决方案 »

  1.   

    供参考:
    function printPage() { 
    document.getElementById("GridView2").AllowPaging = false; 
    var newWin = window.open("printer.aspx","",""); 
    var titleHTML = document.getElementById("printdiv").innerHTML; 
    newWin.document.write(" <html>"); 
    newWin.document.write(" <body style='text-align:center'>"); 
    newWin.document.write(" <h2>用户登录信息 </h2>"); 
    newWin.document.write(titleHTML); 
    newWin.document.write(" </body>"); 
    newWin.document.write(" </html>"); 
    newWin.document.location.reload(); 
    newWin.print(); 
    newWin.close(); 
    document.getElementById("GridView2").AllowPaging = true; 

    <div id="printdiv"> 
        <!--startprint--> 
        <asp:GridView ID="GridView2" runat="server" DataKeyNames="id"  AutoGenerateColumns="False"  BorderStyle="None" 
                        BorderWidth="1px" CellPadding="4"  BackColor="#C0C0FF" OnRowDataBound="GridView2_RowDataBound" > 
                        <PagerStyle CssClass="GridViewPagerStyle" /> 
                <Columns > 
                  <asp:TemplateField HeaderText ="用户ID"> 
                      <ItemTemplate> 
                        <asp:TextBox ID="user_id" runat="server" Text=' <%# DataBinder.Eval(Container.DataItem,"login_user_id") %>' BorderWidth="0px"> </asp:TextBox> 
                      </ItemTemplate> 
                      <ItemStyle HorizontalAlign="Center" /> 
                      <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="100px" /> 
                  </asp:TemplateField> 
                  <asp:TemplateField HeaderText ="登录IP"> 
                      <ItemTemplate> 
                          <asp:TextBox ID="user_ip" runat="server" Text=' <%# DataBinder.Eval(Container.DataItem,"user_ip") %>' BorderWidth="0px"> </asp:TextBox> 
                      </ItemTemplate> 
                      <ItemStyle HorizontalAlign="Center" /> 
                      <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="100px" /> 
                  </asp:TemplateField> 
                  <asp:TemplateField HeaderText ="登录时间"> 
                      <ItemTemplate> 
                          <asp:TextBox ID="login_time" runat="server" Text=' <%# DataBinder.Eval(Container.DataItem,"login_time") %>' BorderWidth="0px"> </asp:TextBox> 
                      </ItemTemplate> 
                      <ItemStyle HorizontalAlign="Center" /> 
                      <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="100px" /> 
                  </asp:TemplateField> 
                  <asp:TemplateField HeaderText ="操作" ShowHeader=False> 
                      <ItemTemplate> 
                          <asp:Button ID="Confirm" runat="server" Text="确定" Visible="false" OnClick="Confirm_Click1" /> 
                          <asp:Button ID="Cancel" runat="server" Text="取消"  Visible="false" OnClick="Cancel_Click1"/> 
                      </ItemTemplate> 
                      <ItemStyle HorizontalAlign="Center" /> 
                      <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="10px" /> 
                  </asp:TemplateField> 
                </Columns> 
            </asp:GridView> </div> 
    <input id="print" type="button" onclick="printPage()"  value="print"/> 
      

  2.   

    winfor or web ?
    web的话把查询的结果存在session里...然后令一个页面调用这个session
      

  3.   

    弹出窗口的话用window.open()就可以了,或者弹出模式也可以。打印的话你可以把数据先导入到Excel中,这样就不需要你去实现打印的功能了。
      

  4.   

    我用了Session[“ds”]传值----ds是查询的结果对象,将值传到新的页面,再进行绑定gridview.datasoure =Session[“dataset”]:
    gridview.databind();可是为什么传不过去呢?在新的一页无法显示,请问各位,等待中...
      

  5.   

    把搜索条件存入Session中,然后在目标页当件参数来SELECT数据.