>我在php中创建了一个数组。
Array
(
[0] => Array
(
[ip_addr] => 152.12.40.205
[Management_col-2] => Success
[Management_col-3] => Success
)
[1] => Array
(
[ip_addr] => 152.12.40.206
[Management_col-2] => Success
[Management_col-3] => Error
)
[2] => Array
(
[ip_addr] => 152.12.40.207
[Management_col-2] => NA
[Management_col-3] => Success
)
[3] => Array
(
[ip_addr] => 152.12.40.209
[Management_col-2] => Success
[Management_col-3] => Success
)
);
我将有动态列,如 ip_addr、Management_col-2、....依此类推,具有相应的动态值。
我想在YII的网格视图中使用它。
$nc3DataProvider = new CArrayDataProvider($alldata);
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'nc3-audit-grid',
'dataProvider' => $nc3DataProvider,
));
我还想在桌子上使用过滤器。
请帮帮我。
提前非常感谢你。
您可以使用 CArrayDataProvider 这个示例
控制器
public function actionGridViewArray() {
$rawData=array(
array('id'=>1, 'username'=>'from', 'email'=>'array'),
array('id'=>2, 'username'=>'test 2', 'email'=>'hello@example.com'),
);
// or using: $rawData=User::model()->findAll();
$arrayDataProvider=new CArrayDataProvider($rawData, array(
'id'=>'id',
/* 'sort'=>array(
'attributes'=>array(
'username', 'email',
),
), */
'pagination'=>array(
'pageSize'=>10,
),
));
$params =array(
'arrayDataProvider'=>$arrayDataProvider,
);
if(!isset($_GET['ajax'])) $this->render('grid_view_array', $params);
else $this->renderPartial('grid_view_array', $params);
}
视图(网格视图)
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider' => $arrayDataProvider,
'columns' => array(
array(
'name' => 'username',
'type' => 'raw',
'value' => 'CHtml::encode($data["username"])'
),
array(
'name' => 'email',
'type' => 'raw',
'value' => 'CHtml::link(CHtml::encode($data["email"]), "mailto:".CHtml::encode($data["email"]))',
),
),
));
并动态地构建柱子
foreach ($header as $cols){
$column[] = array( 'name'=> $cols,
'value'=>'isset($data['''.$cols.'''])?$data['''.$cols.''']:""', );
}
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider' => $arrayDataProvider,
'columns' => $column
));