Kendo Grid,在Firefox中锁定列和打印预览

时间:2017-09-07 14:39:35

标签: kendo-ui

如果你在Firefox中使用锁定列的网格上进行打印预览,你可能会遇到一些奇怪的问题,这可能是因为它是一个3个表中的

e.g。非对齐列,标题后的分页符等

如果Firefox支持“page-break-inside:avoid;”这可能不需要

答案中的解决方法

1 个答案:

答案 0 :(得分:0)

有点乱,但你可以随意清理它。因为这需要重新创建网格,所以只有当网格适当小并通过json或类似方法获取数据时它才有用

(1)使用以下内容连接到打印事件,注意标记设置

(function ()
{
    var beforePrint = function ()
    {
        PrintPreProcess();
    };

    if (window.matchMedia)
    {
        var mediaQueryList = window.matchMedia('print');
        mediaQueryList.addListener(function (mql)
        {
            if (mql.matches)
            {
                beforePrint();
            }
        });
    }

    window.onbeforeprint = beforePrint;
} ());

var PrintPreProcessInProgress = false;

function PrintPreProcess()
{
    window.PrintPreProcessInProgress = true;

    $.event.trigger(
        "PrintPreviewStarted",
        {
        }
    );

    setTimeout(function ()
    {
        window.PrintPreProcessInProgress = false;

        $.event.trigger(
            "PrintPreviewEnded",
            {
            }
        );
    }, 0);
}

(2)打印预览开始和结束时重绘网格

    $(document).on("PrintPreviewStarted", function (e, args)
    {
        ReDrawGrid();
    });

    $(document).on("PrintPreviewEnded", function (e, args)
    {
        ReDrawGrid();
    });

(3)作为重绘的一部分,如果不在打印预览中,则仅允许锁定列,即

locked: colModel.Locked && !window.PrintPreProcessInProgress,