我正在使用Yii Booster,其中一个小部件是TbTotalSumColumn。
当它在页脚中呈现总数时,它使用以下代码:
echo $this->totalValue? $this->evaluateExpression($this->totalValue, array('total'=>$this->total)) : $this->grid->getFormatter()->format($this->total, $this->type);
我使用了CFormatter并创建了一种'货币'类型,我已经将格式直接应用于'value'属性,我已进入小部件并在那里应用了货币格式化程序。似乎无论我做什么,我只能将列中的值格式化为货币或页脚,而不是两者。
非常感谢任何帮助。
答案 0 :(得分:3)
我在components文件夹中创建了一个名为TbTotalColumnCurrency.php的新类文件。然后我在TbExtendedGridView代码中调用TbTotalSumColumnCurrency。
Yii::import('bootstrap.widgets.TbTotalSumColumn');
class TbTotalSumColumnCurrency extends TbTotalSumColumn
{
protected function renderFooterCellContent()
{
if(is_null($this->total))
return parent::renderFooterCellContent();
echo $this->totalValue? $this->evaluateExpression($this->totalValue, array('total'=>number_format($this->total), 2, '.', '')) : $this->grid->getFormatter()->format(number_format($this->total, 2, '.', ''), $this->type);
}
}
希望这有帮助
array(
'name'=>'Total',
'type'=>'text',
'value'=>'number_format($data->price*$data->quantity, 2, \'.\', \'\')',
'class'=>'TbTotalSumColumnCurrency'
),