我写了一个类 MyGridView 从 CGridView 扩展。
MyGridView会在表头自动生成两个按钮,一个是pdf图标,另一个是excel图标。但是如何将事件绑定到这两个图标?这样我就可以使用我的代码根据 dataprovider 和列为这个 CGridView 生成 PDF 或 EXCEL。
PDF导出代码和EXCEL导出代码都准备好了,就是不知道怎么绑定Class的服务端事件
我写了一个类 MyGridView 从 CGridView 扩展。
MyGridView会在表头自动生成两个按钮,一个是pdf图标,另一个是excel图标。但是如何将事件绑定到这两个图标?这样我就可以使用我的代码根据 dataprovider 和列为这个 CGridView 生成 PDF 或 EXCEL。
PDF导出代码和EXCEL导出代码都准备好了,就是不知道怎么绑定Class的服务端事件
这很大程度上取决于您生成 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 中,只需将您的按钮指向相应的 url:
//For the pdf
Yii::app()->controller->createUrl('', array('pdf' => '1'));
//For the excel
Yii::app()->controller->createUrl('', array('excel' => '1'));
如果需要,您可以将其调整为具有 2 个单独的操作。