1

我写了一个类 MyGridView 从 CGridView 扩展。
MyGridView会在表头自动生成两个按钮,一个是pdf图标,另一个是excel图标。但是如何将事件绑定到这两个图标?这样我就可以使用我的代码根据 dataprovider 和列为这个 CGridView 生成 PDF 或 EXCEL。

PDF导出代码和EXCEL导出代码都准备好了,就是不知道怎么绑定Class的服务端事件

4

1 回答 1

0

这很大程度上取决于您生成 PDF 和 EXCEL 文件的代码,有几种方法可以“绑定”这些按钮以生成文件。

  1. 在首先呈现网格视图的同一操作中
  2. 使用生成 CDataProvider 的相同代码库的不同操作。

对于第一种情况,您可以将参数传递给告诉它生成相应文件的操作:

<?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 个单独的操作。

于 2012-10-19T13:59:02.093 回答