我有一个视图,其中包含一些用户数据,CListView
,其中包含从数据库中获取的数据,表示请求日志(IP,密钥,日期/时间)以及基于该数据绘制图表的自定义HighCharts小部件数据
CListView
呈现数据而不进行分组,也就是说,它是数据库中保存内容的1:1表示。
HighCharts小部件应该呈现按日,月或年分组的数据。
我注意到CListView
能够重新渲染整个页面而无需重新加载它,执行AJAX请求(我还没有在我的控制器中实现)。
是否可以创建单个dropDownList
小部件,该小部件将触发相同的AJAX请求并使我的控制器操作尊重所选值?
这是我的控制者的行动:
public function actionUser($id)
{
$usuario = User::model()->with('Contract')->findByPk($id);
$contract = new CArrayDataProvider($usuario->Contract, array(
'keyField'=>'idkey'
));
$usage = new CArrayDataProvider($user->Usage, array(
'keyField'=>'idusage',
'pagination'=>array(
'pageSize'=>15
)
));
$this->render('user',array(
'user'=>$user,
'contract'=>$contract,
'usage'=>$usage
));
}
dropDownList
小部件
<?php echo CHtml::dropDownList('graph', 'gr', array(
'd'=>'Daily',
'm'=>'Monthly',
'y'=>'Yearly'
)); ?>
答案 0 :(得分:0)
我建议向控制器发送ajax请求以获取数据,然后将json格式的数据返回到视图。然后使用新数据重新呈现高清图。