2012-11-09 111 views
0

如果可能,但我会非常惊讶。MVC3 WebGrid打印整个网格值而不仅仅是页面

我正在使用MVC WebGrid并启用分页功能来更好地管理屏幕房地产。

一切都很顺利,直到最终用户询问打印页面时,他们希望看到的所有数据不仅仅是分页数据。

是否有可能在用户打印屏幕时返回全部数据量而不是打印窗口中的分页结果?

我真的不想做的一个真正的肮脏的黑客将是渲染出一个标准的表用css隐藏它,并创建一个只显示这个隐藏表的打印css文件。

有没有人有更好的解决方案?

回答

0

你不能让浏览器打印那些不存在的东西,而显示所有数据只是为了隐藏大部分数据的想法正如你所说,是一个“真正的肮脏的黑客”。最简洁的选项将提供您自己的打印按钮,该按钮链接到另一个操作,该操作返回包含关闭页面的WebGrid的视图。

简化的东西 - 这里有一个返回打印预览的操作:

public ActionResult Print() { 
    var db = new NorthwindEntities(); 
    var products = db.Products.ToList(); 
    return View(products); 
} 

而这里的景观:

@model IEnumerable<MvcApplication1.Models.Product> 
@{ 
    ViewBag.Title = "Print"; 
    var grid = new WebGrid(Model, canPage: false); 
} 

@grid.GetHtml() 
<script> 
    $(function() { 
     window.print(); 
    }); 
</script> 

你需要确保jQuery的引用,和JavaScript将导致在浏览器的打印对话框中出现,显示所有数据。

相关问题