我用的vs2005中的gridview控件,想打印查到的数据,现在用的方法是把gridview放在一个div里,然后调用window.print方法打印div里的内容,现在遇到的问题是,打印的页面纸张必须是24*11的,这样的话打印出来会把分页的某一行拆分开,出现不连续的情况,如果把gridview的allowpaging设置为true的话,不知道怎么才能打印全部数据,装了第三方控件dev express,但是xtrareport只能打印a4纸张大小的,设成24*11的话会把表格进行缩小,很疑惑,不知道大家有没有好的办法?

解决方案 »

  1.   

    <style media=print>  
    .Noprint{display:none;}  
    .PageNext{page-break-after: always;}  
    </style>  导出到office等打印
      

  2.   

    我从网上查到过这段代码,如果是两个table的话可以这样设置,但是在gridview中怎么设置啊?
      

  3.   

    你说的是这段代码吧?
    <html><head><meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5"><title>看看</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><!--media=print 这个属性可以在打印时有效--><style media=print>.Noprint{display:none;}.PageNext{page-break-after: always;}</style><style>.tdp{    border-bottom: 1 solid #000000;    border-left:  1 solid #000000;    border-right:  0 solid #ffffff;    border-top: 0 solid #ffffff;}.tabp{    border-color: #000000 #000000 #000000 #000000;    border-style: solid;    border-top-width: 2px;    border-right-width: 2px;    border-bottom-width: 1px;    border-left-width: 1px;}.NOPRINT { font-family: "宋体"; font-size: 9pt;}</style></head><body ><center class="Noprint" >  <p>  <OBJECT  id=WebBrowser  classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2  height=0  width=0>  </OBJECT>  <input  type=button  value=打印          onclick=document.all.WebBrowser.ExecWB(6,1)>  <input  type=button  value=直接打印  onclick=document.all.WebBrowser.ExecWB(6,6)>  <input  type=button  value=页面设置  onclick=document.all.WebBrowser.ExecWB(8,1)></p>  <p>    <input  type=button  value=打印预览  onclick=document.all.WebBrowser.ExecWB(7,1)>    <br/>    </p>  <hr align="center" width="90%" size="1" noshade></center><table width="90%" border="0" align="center" cellpadding="2" cellspacing="0"  class="tabp"> <tr>  <td colspan="3" class="tdp">第1页</td>    </tr> <tr>   <td width="29%" class="tdp">&nbsp;</td>   <td width="28%" class="tdp">&nbsp;</td>      <td width="43%" class="tdp">&nbsp;</td>  </tr> <tr>   <td colspan="3" class="tdp">&nbsp;</td>  </tr> <tr>   <td colspan="3" class="tdp"><table width="100%"  border="0" cellspacing="0" cellpadding="0">        <tr>          <td width="50%" class="tdp"><p>这样的报表</p>          <p>对一般的要求就够了。</p></td>          <td>&nbsp;</td>        </tr>      </table></td>  </tr></table><hr align="center" width="90%" size="1" noshade class="NOPRINT" ><!--分页--><div class="PageNext"></div><table width="90%" border="0" align="center" cellpadding="2" cellspacing="0"  class="tabp">  <tr>    <td class="tdp">第2页</td>  </tr>  <tr>    <td class="tdp">看到分页了吧</td>  </tr>  <tr>    <td class="tdp">&nbsp;</td>  </tr>  <tr>    <td class="tdp">&nbsp;</td>  </tr>  <tr>    <td class="tdp"><table width="100%"  border="0" cellspacing="0" cellpadding="0">        <tr>          <td width="50%" class="tdp"><p>这样的报表</p>              <p>对一般的要求就够了。</p></td>          <td>&nbsp;</td>        </tr>    </table></td>  </tr></table></body></html>
      

  4.   

    如果是winform的话用dev express控件就可以实现,但是是webform,dev控件也实现不了,快来人帮忙啊
      

  5.   

    www.wave12.com  报表打印控件wsReport7.0 很好用可以去试下 有技术支持人员服务的。
      

  6.   

    wsReport7.0  是收费的吧?
      

  7.   

    web打印很麻烦的,要想实现的完美,web上估计是没法实现的 除非使用第三方控件,现在基本都是用Reporting service
      

  8.   

    那就不要GridView显示。换种方法显示(如:后台绑定html的table显示)。
      

  9.   

    是啊,感觉asp.net打印很麻烦,gridview和datalist打印的时候都出现过问题。
      

  10.   

    后台绑定html的table显示就可以随意设置纸张大小吗? 那怎么判断从哪一行分页啊?哎!到现在也没找到好的办法啊!