我写了一个类MyGridView,从CGridView扩展 MyGridView将自动在标题中生成两个按钮, 一个是pdf图标,另一个是excel图标。但是如何将事件绑定到这两个图标? 这样我就可以根据数据提供者和列使用我的代码为这个CGridView生成PDF或EXCEL。
PDF导出代码和EXCEL导出代码都准备就绪,我只是不知道如何为类绑定服务器端事件
答案 0 :(得分:0)
这很大程度上取决于生成PDF和EXCEL文件的代码,有几种方法可以“绑定”这些按钮来生成文件。
对于第一种情况,您可以将参数传递给告诉它生成相应文件的操作:
<?php
public function actionIndex()
{
//Code base to generate the CActiveData provider.
//Check if we are asking for the PDF version
if(isset($_GET["pdf"])){
//Your code to generate the PDF
}elseif (isset($_GET["excel"])) {
//Your code to generate the EXCEL
}else{
//render the view with the Grid
}
}
?>
然后在你的MyGridClass中,只需将按钮指向相应的网址:
//For the pdf
Yii::app()->controller->createUrl('', array('pdf' => '1'));
//For the excel
Yii::app()->controller->createUrl('', array('excel' => '1'));
如果需要,您可以将其调整为具有2个单独的操作。