显示摘要行时,Syncfusion ejGrid和knockout.js出现问题

时间:2015-06-10 07:44:00

标签: javascript knockout.js syncfusion

在显示组摘要值并以空网格开始或动态向现有网格添加元素时,我遇到使用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工作正常。也就是说,如果你拖动&#39; CustomerID&#39;在进入分组区域的列中,每个组的摘要值(标记为&#39;总计&#39;)显示正常:http://jsfiddle.net/zxw5sL2m/1/

现在,如果网格最初为空,然后添加了行,则在加载&#39; TypeError时失败:r未定义&#39;在ej.web.all-latest.min.js:http://jsfiddle.net/zxw5sL2m/2/(另外,如果删除knockout.js,这种情况不起作用:http://jsfiddle.net/ymgkf7r9/

类似地,如果网格最初是非空的,然后添加行,则加载正常,但是当应用分组时,它会失败并出现&#39; TypeError:y为null&#39;在ej.web.all-latest.min.js中:http://jsfiddle.net/zxw5sL2m/3/

如果未包含组摘要,则错误消失:http://jsfiddle.net/zxw5sL2m/4/

设置showCaptionSummary: false排序工作,但每次添加新行时(在任何分组之前),底部还会添加一个新的摘要行,而不是更新现有的摘要行:{{3 }}

此外,如果网格按列开始分组,然后添加行,则会正确更新组:http://jsfiddle.net/zxw5sL2m/5/但是,如果网格最初未分组,然后稍后分组(无论是由用户还是通过调用gridColumn方法),当新行添加到网格时,分组将丢失(尽管奇怪的是,组列名称仍然出现在标题的组区域中):{{3 }}

1 个答案:

答案 0 :(得分:0)

对于相关查询,我们已确认“在使用超时呈现行时使用启用标题摘要进行分组会导致脚本错误”这一问题是一个缺陷,并记录了缺陷报告。此问题的修复程序将包含在2015年7月底推出的第2卷Service Pack 1中。

如果您有任何相关问题,请联系Syncfusion支持。

此致 Prasanna Kumar N.S.V