我首先需要动态构建网格列,所以我这样做:
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格式是困难的。)
Secondely,我需要像字体颜色或背景颜色等动态设置单元格格式,例如,我想在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,我不知道......有没有人有想法?
由于
答案 0 :(得分:0)
我在Github找到了固定版本,但我没有对此进行测试。
更改grid.base.j
s
acp = celp.split("style");
到
acp = celp.split(/[^-]style/);