使用CGridView在X记录后强制打印分页符

时间:2012-04-25 18:19:39

标签: yii

我使用CGridView从db查询中呈现结果(发票行)。这是在html页面上的<div>内完成的,稍后使用wkhtmltopdf将其转换为PDF并打印。问题是,今天我不支持分页,所以如果发票行数大于10,则剩余的行不可见。我不能让div流动,因为我有一个绝对位置无法移动的发票页脚。

有没有办法强制分页并继续在单独的页面上呈现行?

以下是使用的CGridView代码的一部分。

<...plenty of html---->
<div class="invoiceRow">
<?php

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider' => $dpRows,
    'cssFile' => Yii::app()->request->baseUrl . '/css/invoice.css',
    'summaryText' => '',
    'enablePagination' => false,
    'columns' => array(
        'number',
        'name',
        'description',
        'amount',
        array (
            'name'=>'value',
            'header' => 'netprice',
            'value' => 'number_format($data->value,2,","," ")'
        ),
    ));
?>
</div>
<---more html ----->

2 个答案:

答案 0 :(得分:0)

如果wkhtml能够解析css(看起来如此),你可以尝试:

<div style="page-break-after:always">
    //X invoices here
</div>

答案 1 :(得分:0)

    

if(!empty($model))
{
if($model->content_type==1)
{
    $sentences = explode ('<div style="page-break-after: always;"><span style="display:none">&nbsp;</span></div>',$model->content);
    ?>
    <div id="datashow">
        <?php
        echo $sentences[0];
        ?>
    </div>
    <?php
    $dummy=array();
    $kcnt=preg_match_all('/page-break-after: always/', $model->content,$dummy);
    // echo $model->content;
}



<script>
    $("#pagebreakdiv").find(":button").click(function () {
        var datashow=$('#datashow');
        var a=this.value;
        var bid='<?php echo $bid; ?>';
        var id='<?php echo $id; ?>';
        var pdata = {};
        pdata["bitt"] = a;
        pdata["bid"] = bid;
        pdata["id"] = id;
        $.ajax(
            {
                url : "<?php echo Yii::app()->request->baseUrl; ?>/UserSimple/Contentpagebreak",
                type: "POST",
                data : pdata,
                success:function(data, textStatus, jqXHR)
                {
                    datashow.html(data);
                },
                error: function(jqXHR, textStatus, errorThrown)
                {

                }
            });
    });
</script>