Проблема с Syncfusion ejGrid и knockout.js при отображении итоговых строк

У меня возникают проблемы с использованием Syncfusion ejGrid и knockout.js при отображении сводных значений группы и при запуске с пустой сетки или при динамическом добавлении элементов в существующую сетку.

Настройка сетки:

    <div id="Grid" data-bind="ejGrid: {
               dataSource: dataSource, 
               allowGrouping:true, 
               allowSorting:true,
               columns: [{ field: 'OrderID', headerText: 'OrderID' },
                         { field: 'CustomerID', headerText: 'CustomerID' },
                         { field: 'ShipCity', headerText: 'ShipCity' },
                         { field: 'Freight', headerText: 'Freight' },
                         { field: 'EmployeeID', headerText: 'EmployeeID' }
                        ],                    
                showSummary: true,
                summaryRows: [
                            { summaryColumns: [{
                                summaryType: ej.Grid.SummaryType.Sum,
                                displayColumn: 'Freight',
                                dataMember: 'Freight',
                                prefix: 'Total: '
                                }],
                              showCaptionSummary: true,
                              showTotalSummary: false
                            }
                        ],                     
                    }">
    </div>

Инициализация:

var rows = [{
    OrderID: 10248,
    CustomerID: "VINET",
    ShipCity: "Reims",
    Freight: 11.61,
    EmployeeID: 4
}, {
    OrderID: 10250,
    CustomerID: "HANAR",
    ShipCity: "Charleroi",
    Freight: 65.83,
    EmployeeID: 2
}, {
    OrderID: 10251,
    CustomerID: "VICTE",
    ShipCity: "Reims",
    Freight: 41.34,
    EmployeeID: 1
}, {
    OrderID: 10252,
    CustomerID: "SUPRD",
    ShipCity: "Madrid",
    Freight: 51.3,
    EmployeeID: 3
}, {
    OrderID: 10253,
    CustomerID: "HANAR",
    ShipCity: "Rio de Janeiro",
    Freight: 58.17,
    EmployeeID: 3
}];

var source = ko.observableArray(rows);

var gridData = {
    dataSource: source
};

ko.applyBindings(gridData);

Теперь следующий jsfiddle работает нормально. То есть, если вы перетащите столбец «Идентификатор клиента» в область группировки, итоговые значения для каждой группы (помеченные «Всего») будут отображаться нормально: http://jsfiddle.net/zxw5sL2m/1/

Теперь, если сетка изначально пуста, а затем добавляются строки, происходит сбой при загрузке с 'TypeError: r is undefined' в ej.web.all-latest.min.js: http://jsfiddle.net/zxw5sL2m/2/ (Кроме того, этот сценарий не работает, если удалить knockout.js: http://jsfiddle.net/ymgkf7r9/)

Точно так же, если сетка изначально не пуста, а затем добавляются строки, она загружается нормально, но затем, когда применяется группировка, происходит сбой с 'TypeError: y is null' в ej.web.all-latest.min.js : http://jsfiddle.net/zxw5sL2m/3/

Ошибки исчезнут, если не включена сводка по группе: http://jsfiddle.net/zxw5sL2m/4/

Установка showCaptionSummary: false sort-of работает, однако каждый раз, когда добавляется новая строка (перед любой группировкой), новая итоговая строка также добавляется внизу вместо обновления существующей итоговой строки: http://jsfiddle.net/zxw5sL2m/5/

Кроме того, если сетка сначала сгруппирована по столбцу, а затем добавляются строки, группы обновляются правильно: http://jsfiddle.net/zxw5sL2m/8/ Однако, если сетка изначально разгруппирована, а затем сгруппирована позже (либо пользователем, либо путем вызова метода gridColumn), при добавлении новых строк в в сетке группировка теряется (хотя, как ни странно, имя столбца группы все еще отображается в области группы в заголовке): http://jsfiddle.net/zxw5sL2m/9/


person mpeac    schedule 10.06.2015    source источник
comment
Я обнаружил, что в вашем примере с пустым запуском, если вы установите showCaptionSummary в значение false, ошибок не будет. jsfiddle.net/zxw5sL2m/5 Это также решает последний пример. Я не могу объяснить почему.   -  person Roy J    schedule 10.06.2015


Ответы (1)


Для связанных запросов мы подтвердили, что проблема «Выдает ошибку сценария с группировкой с включением сводки заголовков при рендеринге строк с использованием тайм-аута», и зарегистрировали отчет о дефекте. Исправление этой проблемы будет включено в наш Том 2, Пакет обновления 1 2015 года, который планируется выпустить в конце июля 2015 года.

Пожалуйста, свяжитесь со службой поддержки Syncfusion, если у вас возникнут какие-либо вопросы.

С уважением, Прасанна Кумар Н.С.В.

person Prasanna Kumar    schedule 22.06.2015