Put the following code at the end in view file(admin.php)
//"columnCount"->script name
//"brand-grid"->id of grid view of Model Brand.
//2->third column in the grid.
Yii::app()->clientScript->registerScript('columnCount','
var els=$("#brand-grid").yiiGridView("getColumn",2 );
var total=0;
$.each(els,function(i,j){
total+= parseFloat(j.textContent);
});
$("#count").val(total);
')
?>
<input type="text" id="count" placeholder="get the total value of third column" />
J’ai eu un problème similaire pour calculer le montant total des dons pour un projet sur lequel je travaille. Pour ma part, j’ai résolu ce problème en cuisinant le pied d’une colonne de type numérique.
Dans la vue ou se situe le gridview, j’ai ajouté un pied dans la colonne intituléé ‘montant’ à l’aide du paramètre ‘footer’. J’ai créé une méthode getTotalDons($dataprovider) qui permet de calculer le montant total pour les dons. Cette méthode retourne le total à partir du ‘dataprovider’ ainsi, le gridview affiche le total selon les critères de recherche.
Dans le modèle j’ai créé une méthode getTotalDons($dataprovider) pour récupérer les données du ‘$dataprovider’. À l’aide d’une boucle simple foreach et d’un accumulateur, j’ai fait le total et ajouté une balise html pour appliquer un style particulier au résultat.
# protected\models\Tbldons.php
public function getTotalDons($dataprovider){
$dataprovider->setPagination(false);
$rows = $dataprovider->getData();
$total = 0;
foreach ($rows as $don){
$total += $don['montant'];
}
$total = "<span class=\"csstotaltag\">".sprintf("$%0.2f",$total)."</span>";
return $total;
}