1

CGridView からクラス MyGridView を拡張して作成しました。
MyGridView はヘッダーに 2 つのボタンを自動的に生成します。1 つは pdf アイコンで、もう 1 つは Excel アイコンです。しかし、どうすればこの2つのアイコンにイベントをバインドできますか? コードを使用して、データプロバイダーと列に基づいてこの CGridView の PDF または EXCEL を生成できるようにします。

PDFエクスポートコードとEXCELエクスポートコードはすべて準備ができていますが、クラスのサーバー側イベントをバインドする方法がわかりません

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 に答える