jqgrid custom unformat не вызывается, когда getrowdata ()

Я использовал настраиваемое средство форматирования и unformat для столбца в jqGrid:

{name: 'STATUS', index: 'STATUS',width:145,align:'center',fixed:true, formatter:statusFormatter, unformat:statusUnFormatter}

Форматировщик:

function statusFormatter(cellvalue, options, rowObject){
    var icon = '';
    var label = '<span class="label status-label">';
    switch (cellvalue){
        case 'Rejected': {
            icon = '<i class="fa fa-times"></i>'; 
            label = '<span class="label label-primary status-label">';break;}
        case 'Approved': {
            icon = '<i class="fa fa-check"></i>'; 
            label = '<span class="label label-primary status-label">';break;}   
        default: break;
    }
    return label + icon+"&nbsp" +cellvalue + '</span>';
}

Неформатировать:

function statusUnFormatter(cellvalue, options, cell){
    var html = '<div>' + cellvalue + '</div>';
    html.find('i').removeClass();
    html.find('span').removeClass();
    return html.text();
}

Таблица выглядит так: Столбец после форматирования

Проблема возникает, когда я использую getrowdata (), он возвращает содержимое вместо исходного значения ячейки. Результат предупреждения ()

onCellSelect: function(id, icol, cellcontent, e){
    var status = $(this).getRowData(id).STATUS;
    alert(status);
}

person zhuhang.jasper    schedule 28.03.2016    source источник


Ответы (1)


Я обнаружил проблему в своей функции неформатирования.
Я не заключал строку в объект jQuery, поэтому метод text () не работает.

Этот код работает:

function statusUnFormatter(cellvalue, options, cell){
    var text = $('<div>' + cellvalue + '</div>').text();
    return text.trim();
}
person zhuhang.jasper    schedule 28.03.2016