Пользовательский параметр форматирования jqGrid "unformat" не работает - PullRequest
3 голосов
/ 01 апреля 2011

Опция нестандартного форматера jqGrid "unformat" не работает, если поставляется с функцией.

Я предоставляю функцию для этой опции. пример пользовательского форматера предполагается, что он работает, но он не работает.

Моя основная цель иметь функцию неформатирования - дать правильное значение функции сортировки (когда вы сортируете, щелкая заголовок сортируемого столбца) который вызывает unformat и formatter, передаваемые в colModel.

Вот мой код (все модули включены для jquery UI и jqgrid.)

<link href="../css/jquery-ui-1.8.11.custom.css" rel="stylesheet" type="text/css"/>
<link href="../css/ui.jqgrid.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../js/jquery-1.5.2.js"></script>
<script type="text/javascript" src="../js/jquery-ui-1.8.11.custom.min.js"></script>
<script type="text/javascript" src="../js/jquery.jqGrid.min.js"></script>


    $("#GridTable").jqGrid({
    datatype: "local",
    colNames: ['id', 'col1', 'col2', 'col3', 'col4'],
    colModel: [{name:'id',index:'id', align:'left', width:'260px'},
                {name:'col1',index:'col1', width:'170px'},
                {name:'col2',index:'col2', width:'160px'},
                {name:'col3',index:'col3', sorttype:'float', width:'110px',unformat: unformatterFunction, formatter: formatterFunction },
                {name:'col4',index:'col4', sorttype:'float', width:'110px'}
             ],
    altRows: true,
    caption: "Test Data",
    height: '100%',
    autowidth : true,
    shrinkToFit: true,
});

function unformatterFunction(cellvalue, options, rowObject){
    if(cellvalue=="-"){
        return "0";
    }
    return cellvalue;
}

function formatterFunction(cellvalue, options, rowObject){
    if(cellvalue > 15){
        return "-";
    }
    return cellvalue;
}

Я потратил много часовотследить вызов в grid.base.js и не нашел пути, который идет к jquery.fmatter.js, где unformatFunction вызывается для каждой строки.Я сомневаюсь, что unformatFunction не вызывается при сортировке.

Я только что подтвердил, отредактировав пример , что он не работает, что-то ужасно неправильно.Я не могу думать ни о каких ошибках.просто не вызывайте функцию unformat, указанную в colModel.

1 Ответ

1 голос
/ 01 апреля 2011

Если вам нужно настроить сортировку локального jqGrid, использование нестандартного неформатного файла - неправильный путь. Вам нужно использовать sorttype в качестве функции. Посмотрите на старый ответ , включая демоверсию или этот .

Простейший способ использования sorttype в качестве функции - возврат из функции преобразованных данных, которые должны использоваться для определения в соответствующей операции сравнения для определения порядка строки в сетке.

...