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

标签 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 可以正常工作了。也就是说,如果将“CustomerID”列拖到分组区域中,则每个组的汇总值(标记为“总计”)显示正常: http://jsfiddle.net/zxw5sL2m/1/

现在,如果网格最初为空,然后添加行,则在 ej.web.all-latest.min.js 中加载时会失败并显示“TypeError: r is undefined”: http://jsfiddle.net/zxw5sL2m/2/ (此外,如果删除 knockout.js,此方案将不起作用: http://jsfiddle.net/ymgkf7r9/ )

类似地,如果网格最初非空,然后添加行,则加载正常,但是当应用分组时,它会在 ej.web.all-latest 中失败并显示“TypeError: y is null”。 min.js:http://jsfiddle.net/zxw5sL2m/3/

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

设置 showCaptionSummary: false 排序有效,但是每次添加新行(在任何分组之前),都会在底部添加一个新的摘要行,而不是更新现有摘要行:http://jsfiddle.net/zxw5sL2m/5/

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

最佳答案

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

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

问候, Prasanna Kumar N.S.V

关于javascript - 显示摘要行时 Syncfusion ejGrid 和 knockout.js 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30750149/

相关文章:

javascript - 向 HTML 表添加简单的分页?

c# - 在 Syncfusion DocIo .Net Core 中更改图像(图片)格式

asp.net - 无法加载文件或程序集“Syncfusion ..在部署版本上”

jquery - 如果 iframe src 加载失败,则捕获错误。错误 : -"Refused to display ' http://www. google.co.in/' in a frame.."

javascript - 克隆 - 对多个元素使用相同的 javascript 和 css

javascript - "Page Source"是在 JavaScript 渲染之前还是之后?

javascript - 如何在 Semantic UI React 中实现多选过滤器下拉列表

javascript - 获取日期实例并在页面加载时显示它

javascript - 同步融合甘特图中的.ParentTaskIdMapping属性不起作用?

javascript - Ajax 表单无法与 jquery 附加一起使用