2011-10-28 47 views
0

我正在做一个asp.net项目从页面打印Devexpress网格?

我使用的是Devexpress gridview 9.1。

我想打印gridview只有一个按钮点击。 基本上没有其他控件应该在页面上打印。

我发现,这可以通过将网格传递到下一页并将其打印在那里。 但我的要求不允许。

所以有可能通过任何方式在同一页面上单独打印gridview?

+0

如果我理解正确的话,导出为PDF/Excel是不能接受的? – Filip

回答

0
protected void ASPxButton1_Click(object sender, EventArgs e) 
     { 
      using(MemoryStream ms = new MemoryStream()){ 
       PrintableComponentLink pcl = new PrintableComponentLink(new PrintingSystem()); 
       pcl.Component = ASPxGridViewExporter1; 
       pcl.Margins.Left = pcl.Margins.Right = 50; 
       pcl.Landscape = true; 
       pcl.CreateDocument(false); 
       pcl.PrintingSystem.Document.AutoFitToPagesWidth = 1; 
       pcl.ExportToPdf(ms); 
       WriteResponse(this.Response, ms.ToArray(), System.Net.Mime.DispositionTypeNames.Inline.ToString()); 
      } 
     } 
     public static void WriteResponse(HttpResponse response, byte[] filearray, string type) 
     { 
      response.ClearContent(); 
      response.Buffer = true; 
      response.Cache.SetCacheability(HttpCacheability.Private); 
      response.ContentType = "application/pdf"; 
      ContentDisposition contentDisposition = new ContentDisposition(); 
      contentDisposition.FileName = "test.pdf"; 
      contentDisposition.DispositionType = type; 
      response.AddHeader("Content-Disposition", contentDisposition.ToString()); 
      response.BinaryWrite(filearray); 
      HttpContext.Current.ApplicationInstance.CompleteRequest(); 
      try 
      { 
       response.End(); 
      } 
      catch (System.Threading.ThreadAbortException) 
      { 
      } 

     }