Estou uma dificuldade em relação ao footer de um grid, tenho um grid que trabalha com valores onde no footer nas duas ultimas colunas eu gostaria de colocar o total.
Entao gostaria de saber como eu posso esta fazendo e personalizando este footer com estas duas colunas com os totais.
Deixa ver se eu entendi o footer pode ser personalizado atraves do sumaryText, esta é a unica formar. Sei que isso que vc me passou acho que ja resolve o meu problema mais gostaria de saber se existe outra forma so para agregar conhecimento?
Você pode personalizar o footer de cada coluna através do atributo "footer"
Ex:
array(
'name'=>'valor',
'footer'=>'Conteúdo do Footer da Coluna Valor Aqui!',
),
Para o cálculo do total eu criei uma classe baseada neste wiki aqui
Keeping a running total in a CGridView
Só que o que é mostrado neste wiki mostra o total acumulado por linha e não o total geral no footer.
Para mostrar no footer fiz a seguinte alteração
Yii::import('zii.widgets.grid.CDataColumn');
class TotalFooterColumn extends CDataColumn {
private $_total = 0;
public function renderDataCellContent($row, $data) { // $row number is ignored
echo $data->{$this->attribute}
$this->_total += $data->{$this->attribute};
$this->footer = $this->_total;
}
}
Mudei de CGridColumn para CDataColumn para que assim eu pudesse utilizar o atributo $this->footer e tb usei o $data->{$this->attribute} para que esta classe possa ser utilizada em qualquer coluna sem ter que ficar alterando o código.
Depois basta formatar a coluna do CGridView assim: