我首先需要动态构建网格列,所以我这样做:
success: function(data){
var colnames = data.colnames;
var colmodel = data.colmodel;
$("#list").jqGrid({
...
colNames: colnames,
colModel: colmodel,
...})
在我的 PHP 文件中,我有:
$colnames[0] = 'ID';
$colnames[1] = 'Name';
$colnames[2] = 'Total';
$colmodel[0] = array("name"=>'ID', "index"=>'libelle', "width"=>50);
$colmodel[1] = array("name"=>'Name',"index"=>'Name', "width"=>50);
$colmodel[2] = array("name"=>'Total', "index"=>'Total', "width"=>50);
$arraydata = array("page"=>"1",
"records"=>"1",
"total"=>"1",
"colnames"=> $colnames,
"colmodel"=> $colmodel,
"rows"=>$row,
...
);
$jsondata=json_encode($arraydata);
return $jsondata;
(我不喜欢直接使用 json 格式,因为它对我来说不太清楚,而且很难将 php 变量转换为 json 格式。)
其次,我需要动态设置单元格格式,如字体颜色或背景颜色等......例如,我想在 colModel 中使用“cellattr”:
$colmodel[2] = array("name"=>'Total', "index"=>'Total', "width"=>50,
"cellattr"=>"function( rowId, val, rowObject, cm, rdata){ if (val>100) return 'style=\"color: orange\"';}");
但是,我的网格中没有效果“cellattr”。
在 Firebug 下,我有:
"colmodel":[{"name":"libelle","cellattr":"function( rowId, val, rowObject, cm, rdata){ return 'style=\"background-color: orange\"';}"
我想也许我们不能在 json 中发送一个函数 js,我不知道......有人有想法吗?
谢谢