我有一个gridview,需要显示带有计算逻辑的一列的百分比。
完成了,我在一个列中有一个数字,表示“百分比”,但在表中只有“标记”字段。
现在,我想为此“百分比”字段添加搜索过滤器,但问题出在我的表中,没有百分比,因此当我尝试搜索百分比时,它仅检查标记值。
如何在gridview过滤器中搜索“百分比”值,而不是在“标记”字段中搜索。
https://www.screencast.com/t/IfUezWnJ
实际上,我在数据库列“ battery”中有一个值,例如“ 1256”,经过一些计算后,我在gridview中显示了电池百分比。但是在gridview搜索过滤器中,我想按百分比进行搜索。但是我不能,因为表中没有百分比。
答案 0 :(得分:1)
看看this page。
主要步骤是:
getPercentage()
public $percentage
)中添加与虚拟属性名称相同的公共属性(属性)max_value
)获得的。
在这种情况下,您可以使用以下行:$query->andWhere ('ilike','mark',$this->percentage/100*max_value)
(仅作为示例。当然,ilike
不是这种情况下的最佳运算符。)如果您需要子查询或with语句来获取百分比,则需要在$ query对象中添加一些其他语句,但是主要步骤相同。
如果要将排序功能添加到gridview小部件,则必须定义如何排序和使用表达式(如有必要)。看看this link
的故事