Jquery 服务器端响应jqgrid中单元格的条件背景色设置

Jquery 服务器端响应jqgrid中单元格的条件背景色设置,jquery,jqgrid,Jquery,Jqgrid,我正在使用grid complete中的setcell选项更改单元格的背景色。我已经成功地改变了我想要的背景颜色,但是与改变颜色相比,加载数据所花费的时间更快。这需要更长的时间,一些时间浏览器会因为巨大的数据而崩溃 我想知道有没有办法从服务器端响应(JSON格式)更改单元格的背景颜色 gridComplete:function() { var rows=$(“#tableid”).getDataId(); var ref={}; 对于(var i=0;i首先,我建议您阅读描述gridview:t

我正在使用grid complete中的setcell选项更改单元格的背景色。我已经成功地改变了我想要的背景颜色,但是与改变颜色相比,加载数据所花费的时间更快。这需要更长的时间,一些时间浏览器会因为巨大的数据而崩溃

我想知道有没有办法从服务器端响应(JSON格式)更改单元格的背景颜色

gridComplete:function()
{
var rows=$(“#tableid”).getDataId();
var ref={};

对于(var i=0;i首先,我建议您阅读描述
gridview:true
选项含义的内容。了解页面上一个元素的更改可能会导致属性的重新计算(例如位置)非常重要在
gridComplete
内部的循环中调用
setCell
会产生错误。如果网格中有
n
行,则此类代码具有
n*n
复杂性。因此,代码可能非常慢

下一个常见建议:您应该更喜欢使用
loadComplete
而不是
gridComplete
。回调
gridComplete
主要用于在网格中添加/删除行后更改寻呼机上的信息。有关详细信息,请参阅

您真正应该做的是在应该更改背景的列中使用
cellattr
回调。在构建列的单元格期间,回调将被调用。如果使用
gridview:true
选项,jqGrid将收集网格体的所有内容,并将其作为一个操作放在页面上。因此在填充网格时,您的性能几乎与删除设置背景色的代码时相同。您可以在(或)和其他中找到使用
cellattr
回调的示例。您可以为不同的背景色定义CSS类(
background
或两者
background color
background image:none
)并将类分配给
cellatr
回调中的单元格。或者,您可以使用相应的属性分配内联
样式

无论如何,您都应该验证是否在网格中使用了
gridview:true
选项以获得更好的性能。

您可以使用单元格格式化程序(自定义)

colModel
中为特殊列定义jqGrid时,设置formatter(函数)

函数formatRating(单元格值、选项、行对象){

var color=(parseInt(cellValue)>0)?“绿色”:“红色”;
var cellHtml=“”+cellValue+”;
返回cellHtml;
}
欲了解更多详情,请访问:

或查看演示:

gridComplete: function()
{
var rows = $("#tableid").getDataIDs(); 
var ref={};
for (var i=0;i<rows.length;i=i+1){
if(i==2){
rowData=jQuery("#tableid").getRowData(rows[2]);
var count= Object.keys(rowData).length;
for(var j=1;j<=count;j++){ ref[j]=rowData['r'+j];}
$("#tableid").jqGrid('setRowData',rows[2],false,color:'white',weightfont:'bold',background:'green' });}
if(i>2){
rowData=jQuery("#tableid").getRowData(rows[i]); 
for(var j=1;j<=count;j++){
 if(rowData['r'+j]==ref[j]){
$("#tableid").jqGrid('setCell',rows[i],'r'+j,''{color:'white',weightfont:'bold',background:'green'}); }
else if(rowData['r'+j]=='-'){
$("#tableid").jqGrid('setCell',rows[i],'r'+j,'',{color:'black',weightfont:'bold',background:'white'}); } 
else if(rowData['r'+j]== 'R'){
$("#tableid").jqGrid('setCell',rows[i],'r'+j,'',{color:'black',weightfont:'bold',background:'yellow'});
 } 
else if(rowData['r'+j]== 'M'){
$("#tableid").jqGrid('setCell',rows[i],'r'+j,'',{color:'black',weightfont:'bold',background:'yellow'});
} 
else if(rowData['r'+j]== 'Y'){
$("#tableid").jqGrid('setCell',rows[i],'r'+j,'',{color:'black',weightfont:'bold',background:'yellow'});
} 
else if(rowData['r'+j]== 'S'){
$("#tableid").jqGrid('setCell',rows[i],'r'+j,'',{color:'black',weightfont:'bold',background:'yellow'});
} 
else if(rowData['r'+j]== 'K'){
$("#tableid").jqGrid('setCell',rows[i],'r'+j,'',{color:'black',weightfont:'bold',background:'yellow'});} 
else {
$("#tableid").jqGrid('setCell',rows[i],'r'+j,'',{color:'black',weightfont:'bold',background:'red'}); } 
}
}
} },
   var color = (parseInt(cellValue) > 0) ? "green" : "red"; 

   var cellHtml = "<span style='color:" + color + "' originalValue='" + cellValue + "'>" + cellValue + "</span>";

   return cellHtml;
   }