【问题标题】:MVC3 WebGrid print entire grids value instead of just pageMVC3 WebGrid 打印整个网格值而不仅仅是页面
【发布时间】:2012-12-18 18:33:04
【问题描述】:

如果这是可能的,我会感到非常惊讶,但这里就是这样。

我正在使用 MVC WebGrid 并启用了分页以更好地管理屏幕空间。

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

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

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

谁有更好的解决方案?

【问题讨论】:

    标签: asp.net asp.net-mvc-3 webgrid


    【解决方案1】:

    您无法让浏览器打印不存在的内容,并且正如您所说,显示所有数据只是为了隐藏大部分数据的想法是“真正的肮脏黑客”。最干净的选择是为您提供自己的打印按钮,该按钮链接到另一个操作,该操作返回包含关闭分页的 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 将导致浏览器的打印对话框出现,显示所有数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      相关资源
      最近更新 更多