如何基于单选按钮显示gridview
我在高级搜索表单中使用了两个单选按钮,它们是已审核和未审核的。当我点击Revied时,它应该在Gridview中过滤多个搜索框并显示结果。还有另外三个字段“更新日期”、“审核日期”和“创建日期”。假设我点击Review按钮。它应该检查条件更新时间是否大于创建日期,检查日期是否为默认值(0000-00-00 00:00:00),并在gridview中显示结果如何基于单选按钮显示gridview,gridview,yii,yii-components,Gridview,Yii,Yii Components,我在高级搜索表单中使用了两个单选按钮,它们是已审核和未审核的。当我点击Revied时,它应该在Gridview中过滤多个搜索框并显示结果。还有另外三个字段“更新日期”、“审核日期”和“创建日期”。假设我点击Review按钮。它应该检查条件更新时间是否大于创建日期,检查日期是否为默认值(0000-00-00 00:00:00),并在gridview中显示结果 SQL query-Select * from test where (updateddate>createddate)and(rev
SQL query-Select * from test where (updateddate>createddate)and(revieweddate=='0000-00-00 00:00:00');
类似地,当我单击NotReview时,它应该检查UpdateDate=createddate和revieweddate=NULL
SQL query-Select * from test where (updateddate=createddate)and(revieweddate IS NULL);
下面是我尝试过的代码,但没有得到正确的结果。如何执行正确的结果
$criteria->compare('ReviewedDate',$this->ReviewedDate,true);
if($this->ReviewedDate != '') {
$criteria->addCondition(
'ReviewedDate ' . ($this->ReviewedDate=='1' ? 'IS NOT NULL' : 'IS NULL'));
}
else {
$criteria->addCondition('ReviewedDate IS NULL');
}
您可以在网格视图中使用客户过滤器(如下拉列表),获取该字段的值并在其中实现您的逻辑,如: 在你看来:
$this->widget('zii.grid.GridView' , array(
'id' => 'urGrid',
'dataProvider' => $model->search,
'columns' => array(
array(
'name' => 'ReviewedDate',
'filter' => CHtml::dropDownList('customeField' , $_GET['customeField'] , array(0=>'not reviewed' , 1=>'reviewed' , 2=>'some other thing'))
),
.
.
.
),
));
在saerch函数中,捕获此自定义字段值:
public function search() {
$criteria = new CDbCriteria;
//$criteria->compare('col1', $this->col1);
$criteria->compare('col2', $this->col2);
.
.
.
if(isset($_GET['customeField'])){ // implement your logic in here
if($_GET['customeField'] == 1){
$criteria->addCondition('t.updateddate > t.createddate); //add your logic
$criteria->compare('revieweddate' ,'0000-00-00 00:00:00'); //check for exact thing
}
else{ anothe thing ..}
}
干杯