Asp.net MVC3 WebGrid打印整个网格值,而不仅仅是页面

Asp.net MVC3 WebGrid打印整个网格值,而不仅仅是页面,asp.net,asp.net-mvc-3,webgrid,Asp.net,Asp.net Mvc 3,Webgrid,如果这是可能的话,我真的会感到惊讶,但事情是这样的 我正在使用MVC WebGrid并启用了分页功能,以便更好地管理屏幕不动产 一切都进行得很顺利,直到最终用户在打印页面时询问他们希望看到所有数据,而不仅仅是页面数据 当用户打印屏幕时,是否可以在打印窗口中返回全部数据而不是页面结果 我不想做的一个真正肮脏的黑客就是渲染出一个标准表,用css隐藏它,然后创建一个只显示这个隐藏表的打印css文件 有人有更好的解决方案吗?你无法让浏览器打印出没有的内容,而显示所有数据只是为了隐藏大部分数据的想法,正如

如果这是可能的话,我真的会感到惊讶,但事情是这样的

我正在使用MVC WebGrid并启用了分页功能,以便更好地管理屏幕不动产

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

当用户打印屏幕时,是否可以在打印窗口中返回全部数据而不是页面结果

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


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

你无法让浏览器打印出没有的内容,而显示所有数据只是为了隐藏大部分数据的想法,正如你所说的,是一种“真正的肮脏的黑客行为”。最干净的选项是提供您自己的打印按钮,该按钮链接到另一个操作,该操作返回包含关闭分页的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>
@model IEnumerable
@{
ViewBag.Title=“打印”;
var grid=新的WebGrid(模型,canPage:false);
}
@grid.GetHtml()
$(函数(){
window.print();
});
您需要确保jQuery被引用,JavaScript将导致浏览器的打印对话框出现,并显示所有数据