2011-12-15 3 views
0

jqGrids loadComplete関数を呼び出して、特定のしきい値を超える、または特定のしきい値を超える特定のセルを列内で強調表示できますか?ここで私が何しようとしてるものです:jqGridで数値のしきい値を強調表示しますか?

loadComplete: function() { 

    var threshold = '5'; 

    // How do I iterate through each row and check for a value exceeding my threshold? 

    $.each(rows,function(index, value) { 
     //alert("index: " + index); 
     grid.jqGrid('setCell',index,"name", '', {'color':'red'}); 

    }); 
} 

答えて

1
 loadComplete: function() { 
     var cssGreen = {'background-color':'#6DFF6D', 
      'filter': 'progid:DXImageTransform.Microsoft.gradient(startColorstr = \'#D9FFD9\', endColorstr = \'#6DFF6D\')', 
      'background': '-moz-linear-gradient(bottom, #D9FFD9, #6DFF6D 2px, #D9FFD9 4px)'}; 
     var cssRed = {'background-color':'#FF6D6D', 
      'filter': 'progid:DXImageTransform.Microsoft.gradient(startColorstr = \'#FECECD\', endColorstr = \'#FF6D6D\')', 
      'background': '-moz-linear-gradient(bottom, #FECECD, #FF6D6D 2px, #FECECD 4px)'}; 
     var columns = grid.jqGrid('getGridParam', 'colModel'); 
     var ids = jQuery("#gridMain").jqGrid('getDataIDs'); 
     for (var i = 0; i < columns.length; i++) { 
      var columnName = columns[i].name; 
      for (var j = 0; j < ids.length; j++) { 
       var cell = grid.jqGrid("getCell", ids[j], columnName); 
       grid.setCell(ids[j], columnName, '', '', {'title':colNameData[i]}); 
       if (cell != null && cell.indexOf("%g") >= 0) { 
        grid.jqGrid('setCell', ids[j], columns[i].name, '', cssGreen); 
       } else if (cell != null && cell.indexOf("%r") >= 0) { 
        grid.jqGrid('setCell', ids[j], columns[i].name, '', cssRed); 
       } 
      } 
     } 

このサンプルはあなたの探しているものです。この関数はセルをループします。セルデータに '%g'が含まれていれば、上に向かって定義されたCSSスタイルが適用されます。 CSSを好みのハイライトスタイルに設定するだけです。

<script> 
jQuery("#grid_id").jqGrid({ 
... 
    colModel: [ 
     ... 
     {name:'price', index:'price', width:60, align:"center", editable: true, formatter:currencyFmatter}, 
     ... 
    ] 
... 
}); 

function currencyFmatter (cellvalue, options, rowObject) 
{ 
    if (cellvalue > 5){ 
    return "<div style='color:red'>"+cellvalue+"</div>"; 
    }else{ 
    return cellvalue; 
    } 
} 
</script> 
0

あなたはafterInsertRowイベントを使用することができます:あなたが必要なすべてを持っているようですので、

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events

rowDataとrowElemパラメータがあります。 (私はセルにクラスを追加し、CSSで色を設定します)

0

これ

もjqgridの custom formatter

たとえば、あなたがこのような何かを行うことができます使用して達成することができます

関連する問題