我有一个带有患者列表的CGridview,我需要一个网格中的按钮URL,以便打印当前记录的更新页面?

时间:2012-12-21 12:02:35

标签: yii

我需要在CGridview中查看患者的详细信息,当我点击网格中的图标时,它应该打印患者的详细信息(位于更新页面中)。

已经尝试window.print()(.class).printPage(),但不知道如何实现这些?

1 个答案:

答案 0 :(得分:0)

CGridView电话中(可能在您的患者观点的管理员视图中),添加其他按钮,如下所示:

array(
    'class'=>'CButtonColumn',
    'template'=>'{printbutton}{view}{update}{delete}',
    'buttons'=>array(
        'printbutton' => array(
            'label'=>'Print',
            'imageUrl'=>Yii::app()->request->baseUrl.'/images/print_icon.png',
            'url'=>'Yii::app()->createUrl("patient/printitem", array("id"=>$data->id))',
         ),
    ),
),

你会看到这个:

  • 引用图像(在此示例中存储在* image / print_icon.png *中)以用作图标
  • 引用控制器/操作URL(在此示例中为 patient / printitem )并将其传递给所单击的患者记录的id

此控制器/操作现在必须选择患者记录,然后渲染视图,如:

public function actionPrintitem(){
    $model = Patient::model()->findByPk($_REQUEST['id']);
    $this->render("printitem",array(
        "model" => $model
    ));
}

现在,在此视图中(您必须创建),只需在页面加载后放置window.print();即可,这将打开浏览器打印窗口