2015-05-11 3 views
2

Я пытаюсь использовать функциональность группы заголовков столбцов jqpivot jqgrid, чтобы иметь два заголовка столбца (заголовок заголовка для дня недели и другой заголовок для фактической даты) ,jqPivot группирует заголовки столбцов, которые не относятся к группе

var crewAttendance = { "total": 1, "page": 0, "records": 7, 
      "rows": [ 
       { "ID": "1", "UserID": "10", "AttendanceTypeID": "6", "AttendanceDate": "04/05/15", "AttendanceDay": "SUN" }, 
       { "ID": "21", "UserID": "10", "AttendanceTypeID": "12", "AttendanceDate": "04/06/15", "AttendanceDay": "MON" }, 
       { "ID": "41", "UserID": "10", "AttendanceTypeID": "19", "AttendanceDate": "04/07/15", "AttendanceDay": "TUE" }, 
       { "ID": "61", "UserID": "10", "AttendanceTypeID": "17", "AttendanceDate": "04/08/15", "AttendanceDay": "WED" }, 
       { "ID": "81", "UserID": "10", "AttendanceTypeID": "17", "AttendanceDate": "04/09/15", "AttendanceDay": "THU" }, 
       { "ID": "101", "UserID": "10", "AttendanceTypeID": "19", "AttendanceDate": "04/10/15", "AttendanceDay": "FRI" }, 
       { "ID": "121", "UserID": "10", "AttendanceTypeID": "19", "AttendanceDate": "04/11/15", "AttendanceDay": "SAT" } 
      ], "userID": ["10"], "firstName": ["Christopher"] 
     } 
     // create jqPivot Grid 
    var grid = $("#pvtCrewAttendance"); 
    grid.jqGrid("jqPivot", 
     crewAttendance.rows, 
     { 
      xDimension: [ 
       { 
        isGroupField: false, 
        width: 70, 
        dataName: 'UserID', 
        label: 'UserID' 
       } 
      ], 
      yDimension: [ 
       { 
        dataName: 'AttendanceDay' 
       }, 
       { 
        dataName: 'AttendanceDate' 
       } 
      ], 
      aggregates: [ 
       { 
        aggregator: 'max', 
        width: 80, 
        member: 'AttendanceTypeID', 
        summarytype: 'count', 
        sortable: true, 
        resizable: false 
       } 
      ], 
      groupSummary: false, 
      colTotals: true 
     }, 
    // grid options 
     { 
     height: 'auto', 
     pager: '#nav', 
     caption: 'Crew Attendance' 
    }); 

    var cm = grid.getGridParam('colModel'); 
    for (var iCol = 0; iCol < cm.length; iCol++) { 
     var cmi = cm[iCol]; 
     if (cmi.label.length == 3 || cmi.label.length == 0 || cmi.label == '\&nbsp\;') { 
      grid.jqGrid('hideCol', cmi.name); 
     } 
    } 
    grid.trigger('reloadGrid'); 

и до сих пор работает на SUN и MON, но по какой-то причине, заголовок столбца группировки jqPivot является не работает должным образом для остальных дней (ВТ и СРД сочетает в себе, а затем Thu, Fri, и SAT также объединяет, но они не должны, потому что они находятся на разных датах). См. JsFiddle here

Как я могу заставить его работать в течение оставшихся дней?

ПРИМЕЧАНИЕ: Я не могу объединить два заголовка вместе, потому что я собираюсь повернуть дату на 90 градусов. Я уже сделал эту часть, но удалил ее в скрипке, чтобы уменьшить беспорядок.

ответ

1

Благодарим за сообщение об ошибке!

После долгой отладки я обнаружил и исправил ошибку. В вашей демонстрации напрямую используются самые последние источники из GitHub. Таким образом, к демо также применяются the last changes. Вы можете убедиться, что на нем отображаются правильные результаты.

ОБНОВЛЕНО: Я реализовал несколько исправлений in the commit и в this one для модуля jsPivot. Там должны исправить старые ошибки, которые исходят от jqGrid 4.7. Теперь ваша демонстрация JSFiddle https://jsfiddle.net/OlegKi/4en1b68c/7/ дает правильные результаты (я сделал некоторые косметические изменения в демо). Я надеюсь, что код работает корректно и для более сложных входных данных. Кроме того, вы можете удалить последний блок со скрытием столбцов, имеющих cmi.label.length == 3 || cmi.label.length == 0 || cmi.label == '\&nbsp\;'. Я интерпретирую существование столбцов как еще одну ошибку, поэтому я изменил код так, чтобы столбцы больше не встречались в сетке.

+0

Благодаря @Oleg для ответа, но я думаю, что ошибка еще не исправлена. Я изменил ссылки javascript на ваш репозиторий, но никаких изменений в выходе не было (заголовки столбцов, которые не должны объединяться, все еще объединяются). См. JSFiddle [здесь] (https://jsfiddle.net/4en1b68c/5/) – Gelo32k

+1

@ Gelo32k: Я сделал больше изменений (см. ** ОБНОВЛЕНО ** часть), которая должна устранить проблему. Попробуйте еще раз в более сложном случае в качестве демонстрации, которую вы разместили. – Oleg

+0

Hi @Oleg, Спасибо, что помогли мне, теперь jqPivot работает отлично! Вот конечный продукт: https://jsfiddle.net/ngrL712u/1/ Общая сумма столбцов может выглядеть противоречивой, но это намеренно :) – Gelo32k