0

私は Yii Booster を使用しています。ウィジェットの 1 つは 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 に答える