Удалить пустой столбец в jqGrid — Pivot

Я создал jqGrid — пример сводной таблицы JSFiddle: здесь.

В этом случае не следует печатать строку, если значение Component Type пусто. Я использовал этот пустой столбец, чтобы показать все периоды (месяцы) в году, что является обязательным.

Нужна помощь в удалении этой пустой строки. а также можно ли удалить последний столбец суммы 2015 из сетки, если да, то как?


person Mani Deep    schedule 21.04.2015    source источник


Ответы (1)


Вы включаете фиктивные данные с группой ComponentType:"", которые не хотите отображать. Таким образом, лучшим решением, которое я вижу, было бы включение данных только во входные сводные данные, но не использовать фиктивные данные в данных сетки. jqPivot использует datatype: "jsonstring" для предотвращения дополнительной сортировки ранее отсортированных данных. Входные данные будут размещены как значение опции datastr. Таким образом, можно использовать следующий onInitGrid для удаления фиктивных данных до того, как данные будут обработаны jqGrid:

onInitGrid: function () {
    var p = $(this).jqGrid("getGridParam"),
        userdata = p.datastr.userdata;

    p.datastr = $.grep(p.datastr, function (item) {
        return item.ComponentType !== "";
    });
    p.datastr.userdata = userdata;
}

см. модифицированную демонстрацию http://jsfiddle.net/OlegKi/b47ocLd7/11/.

person Oleg    schedule 21.04.2015
comment
@ManiDeep: Извините, но как может снова появиться пустая строка, если в сетке нет данных? Вы делаете что-то вроде jsfiddle.net/OlegKi/b47ocLd7/13? Я не вижу никаких проблем. - person Oleg; 21.04.2015
comment
@ManiDeep: Вы разместили loadComplete в своей последней демонстрации совершенно не в том месте. Трехмерный параметр jqPivot указывает параметры jqGrid. Вы включили { loadComplete: function() {...} }, и параметры, в которых используются onInitGrid, теперь будут в 4-м параметре параметра jqPivot и будут интерпретироваться как параметры Ajax. Так что onInitGrid, который я предложил, не будет использоваться. Вы должны использовать что-то вроде jsfiddle.net/OlegKi/b47ocLd7/16. - person Oleg; 21.04.2015
comment
о... извините, я этого не знал... да, это работает, и из вашего примера stackoverflow.com/a/14694528/2750968 здесь даже font-weight:bold заголовка не работает :( - person Mani Deep; 21.04.2015
comment
и если вы можете поделиться ссылкой на использование параметров jquery .. это будет полезно :) спасибо - person Mani Deep; 21.04.2015
comment
боже мой, я только что заметил, сводка (значения суммы в нижней части сетки не загружаются) из основного ответа, который вы отправили .. - person Mani Deep; 21.04.2015
comment
@ManiDeep: Извините, но я не понимаю последнюю проблему. Вы используете группировку данных. Старый ответ показывает, как установить стиль полужирный в TreeGrid. Элементы сетки дерева имеют свойство parent, которое является идентификатором родительской строки или "null" для корневых узлов. Таким образом, ответ использует rd.parent === "null" для установки класса на узлах. - person Oleg; 21.04.2015
comment
можно ли также добавить опцию сортировки в Component Type? как это для всех мер и имени компонента? - person Mani Deep; 21.04.2015
comment
@ManiDeep: вы должны динамически изменять groupingView.groupOrder, если пользователь нажимает на сортировку столбца из массива groupingView.groupField. Проблема существует только в том случае, если groupingView.groupColumnShow содержит элемент true. Обычно используется groupingView.groupColumnShow: [false], и для столбца группировки вообще нет столбца. - person Oleg; 21.04.2015
comment
Здесь, если пустая строка без типа компонента имеет значение, то значение этой строки также добавляется к общей сумме в нижнем колонтитуле сетки.. (но мы удалили ее из отображения), как игнорировать ее значение также от добавления ? как в этом JSFiddle: jsfiddle.net/manideep/bkqce0s0/2 (январь-15 имеет нет записей, мы убрали из отображения, но все еще имеет значение в сводном нижнем колонтитуле) - person Mani Deep; 21.04.2015
comment
@ManiDeep: я не понимаю, что вы имеете в виду. Вы написали, что добавили фиктивные строки только для того, чтобы иметь больше столбцов. Почему ценности могут существовать? Pivot генерирует столбцы jqGrid и одновременно вычисляет сводные результаты. Если вы хотите, вы можете изменить значения из строки нижнего колонтитула внутри onInitGrid. userdata — это объект со значениями нижнего колонтитула. Таким образом, вы можете уменьшить значение значений из удаленных строк (строки, где item.ComponentType !== ""). - person Oleg; 21.04.2015
comment
не могли бы вы присоединиться к группе: chat.stackoverflow.com/rooms/75790/ - person Mani Deep; 21.04.2015
comment
@ManiDeep: Извините, но я уже потратил слишком много времени на ваши вопросы. У меня есть другие дела. - person Oleg; 21.04.2015
comment
ох, на самом деле это не было связано с этим вопросом. @Олег спасибо за уделенное время - person Mani Deep; 21.04.2015