выделение порога числа в jqGrid? - PullRequest
0 голосов
/ 15 декабря 2011

Можно ли вызвать функцию jCGrids loadComplete и выделить определенные ячейки в столбце, которые соответствуют или превышают определенный порог. Вот что я пытаюсь сделать:

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'});

    });
}

Ответы [ 3 ]

1 голос
/ 15 декабря 2011
       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 на любой стиль подсветки, который вы пожелаете.

0 голосов
/ 26 августа 2014

Этого также можно добиться с помощью пользовательского форматера jqgrid

Например, вы можете сделать что-то вроде этого:

<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 голосов
/ 15 декабря 2011

Вы можете использовать событие afterInsertRow:

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

Здесь есть параметры rowData и rowElem, поэтому, похоже, у вас есть все, что вам нужно.(Я бы добавил класс к ячейкам и установил цвет с помощью css)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...