0

我正在使用 Yii Booster,其中一个小部件是 TbTotalSumColumn。

当它在页脚中呈现总计时,它使用以下代码:

echo $this->totalValue? $this->evaluateExpression($this->totalValue, array('total'=>$this->total)) : $this->grid->getFormatter()->format($this->total, $this->type);

我使用了 CFormatter 并创建了一个“货币”类型,我直接在“值”属性中应用了格式,我进入了小部件并在那里应用了货币格式化程序。似乎无论我做什么,我都只能将列中的值格式化为货币或页脚,而不能两者兼而有之。

任何帮助将不胜感激。

4

1 回答 1

3

我在名为 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'
),
于 2013-05-24T03:49:52.413 回答