- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试按两个字段对数据源进行分组,并获取它们值的平均值或总和。但即使我在数据源中指定了组和聚合属性,我也无法获取它。
代码如下:
var dataSource = new kendo.data.DataSource({
data: [
{ id: 1, name: "Amazon US", stock: 15, year: 2015},
{id: 2,name: "Amazon US", stock: 20, year: 2016 },
{id: 3,name: "Amazon US", stock: 7, year: 2016 },
{ id: 4, name: "Amazon EU", stock: 30, year: 2015 },
{ id: 5, name: "Amazon EU", stock: 7, year: 2015 },
{ id: 6, name: "Amazon EU", stock: 12, year: 2016 },
{ id: 7, name: "Amazon EU", stock: 26 , year: 2016}
],
schema: { // required if get method will be used
model: {
id: "id"
}
}
})
dataSource.read();
dataSource.bind("change", function() {
var log = $("#log");
log.append("<P>total records in datasource is " + this.total() + "</p>" );
var A = this.aggregates();
log.append("<p>total stock is " + A.stock.sum + "</p>" );
})
.aggregate({ field: "stock", aggregate: "sum" });
这里是一个工作示例: http://jsfiddle.net/rusev/NwG9A/2/
总和的预期结果应该是:
有人知道 KendoUI 数据源是否可行吗?
最佳答案
如果 calinaadi 是正确的方法。还有一种方法可以通过递归以编程方式从 DataSource 中提取聚合信息。每个分组项目都有一个 value
、aggregates
和 items
字段,您可以使用这些字段 - 在调试器中查看它们。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled</title>
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.3.914/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.3.914/styles/kendo.default.min.css">
<script src="http://code.jquery.com/jquery-1.12.3.min.js"></script>
<script src="http://kendo.cdn.telerik.com/2016.3.914/js/kendo.all.min.js"></script>
</head>
<body>
<div id="aggregates"></div>
<div id="grid"></div>
<script>
var dataSource = new kendo.data.DataSource({
data: [
{ id: 1, name: "Amazon US", stock: 15, year: 2015},
{id: 2,name: "Amazon US", stock: 20, year: 2016 },
{id: 3,name: "Amazon US", stock: 7, year: 2016 },
{ id: 4, name: "Amazon EU", stock: 30, year: 2015 },
{ id: 5, name: "Amazon EU", stock: 7, year: 2015 },
{ id: 6, name: "Amazon EU", stock: 12, year: 2016 },
{ id: 7, name: "Amazon EU", stock: 26 , year: 2016}
],
schema: {
model: {
id: "id"
}
},
group: [
{ field: "name", aggregates: [{ field: "stock", aggregate: "sum" }] },
{ field: "year", aggregates: [{ field: "stock", aggregate: "sum" }] }
],
aggregate: [
{ field: "stock", aggregate: "sum" }
]
});
$("#grid").kendoGrid({
dataSource: dataSource,
dataBound: onDataBound,
groupable: true,
columns: [
{ field: "stock", groupFooterTemplate: "#= sum #", footerTemplate: "#= sum #" },
{ field: "name" },
{ field: "year" }
]
});
function onDataBound(e) {
var ds = e.sender.dataSource;
var dataItems = ds.view();
var aggregatesResult = '<p>Sum of all stock: ' + ds.aggregates().stock.sum + '</p>'
aggregatesResult += '<ul>';
for (var i = 0; i < dataItems.length; i++) {
aggregatesResult += getFieldAndSum(dataItems[i], '');
}
aggregatesResult += '</ul>';
$("#aggregates").html(aggregatesResult);
}
function getFieldAndSum(dataItem, parentValue) {
var result = '<li>' + (dataItem.value ? (parentValue + ' ' + dataItem.value + ' ' + dataItem.aggregates.stock.sum) : dataItem.stock);
if (dataItem.items && dataItem.items.length) {
for (var j = 0; j < dataItem.items.length; j++) {
result += '<ul>';
result += getFieldAndSum(dataItem.items[j], parentValue + ' ' + dataItem.value);
result += '</ul>';
}
}
result += '</li>';
return result;
}
</script>
</body>
</html>
关于javascript - KendoUI 数据源分组并按多个字段聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40129356/
我有要在 KendoUI 网格中显示的数据。有一些 bool 数据,我希望它显示为复选框。此外,当用户单击复选框时,我需要做一些事情,所以我需要每一行数据的 onclick 事件。如何在 KendoU
我有 2 Kendo Treeview; 1 没有复选框,另一个 1 带有复选框 like example here 。 假设我想禁用第二个 Treeview 上的某些节点,当我选择第一个 Treev
removeTask 方法会弹出一个窗口,询问我是否确定要删除该任务, 这确实使得通过编程删除任务变得困难, 有人找到了我没有想到的方法(不改变剑道的代码)吗? 谢谢, 最佳答案 找到了我要找的东西,
收到未捕获错误:模板无效:来自此 kendoui 模板。我在这里缺少什么? ${DisplayText} 我想设置单选按钮来检查 Json 对象的 IsActive 属性是否为 true..
我通过 API 获取 JSON 数据并使用 Kendo UI 将其显示在表格中。 $scope.ReportViewGrid = function ReportViewGrid(jsonData) {
我正在尝试按两个字段对数据源进行分组,并获取它们值的平均值或总和。但即使我在数据源中指定了组和聚合属性,我也无法获取它。 代码如下: var dataSource = new kendo.data.D
我正在创建这样的 KendoUI 模板: Flows in action
我有一个 JSON 数据结构,需要在 Kendo UI 网格中显示。数据是这样的 [ {"ObjType": {"Key1":"Value1", "Key2":"Value2", "Key3":["1
使用下面的示例,x 轴系列并非从相同的 x 值开始。 x 轴将在中途从 0 重新开始。 function createChart() { $("#chart").kendoChart({
我在对 kendoUI 网格的日期时间进行排序时遇到问题,请参阅 my grid snapshot ,日期排序正确(从最近的日期时间排序),但时间不正确,其中“Jul/08/2016 15:04:22
有没有办法在运行时在 KendoUI 网格列中创建不同类型的控件?场景是,我的网格中有 2 列。第一列显示一个下拉列表,其中包含一些字符串,例如“名称”、“开始日期”等。当用户从中选择一个值时,我想在
我正在使用包含在 中的 KendoUI 自动完成功能。如果在自动完成选项打开时按 Enter 键,则 Enter 键只会关闭选项,并且您必须再次按 Enter 键才能提交表单。监听输入上的按键来检查
下面我有一个 kendoUI 网格,它从服务器获取数据。然后,用户可以编辑网格中的两列。我有一个单独的按钮,可以将数据发送回服务器,并且我不使用剑道网格的 UPDATE 传输来执行此操作。我遇到的问题
在 Kendo UI 中,是否可以使用图标而不是按钮来执行 KendGrid 中的自定义命令?我需要这个,因为按钮似乎有一个最小宽度,这对我的页面来说太大了。即使我指定宽度它也不会减少。 co
我正在使用 KendoUI Grid 在启用 KnockoutJS MVVM 的应用程序中显示我的数据。由于 MVVM 是客户端的架构,我正在维护一个 knockoutjs observerble 数
在我的剑道网格中,我想更改过滤器中的日期格式 Ex: 1/30/2015 to Jan 30, 2015 我已经更改了 Start Date 的日期格式 field:
我正在尝试使用 JSON 数据填充 KendoUI 网格,其中服务器返回总行数以及数据,但是我在让 serverPaging 正常工作时遇到了一些问题。我创建并分配网格的数据源如下:
我正在尝试使用 kendo ui 在堆叠图中显示数据。这是我的代码: var data = [ // June { Start: "2014-06-01T00:00:00", Name
有什么方法可以连接 KendoUI 可拖动项以添加到 KendoUI 可排序列表中,例如此处的 jQueryUI:http://jqueryui.com/draggable/#sortable .我为
我有一个 kenodui Treeview ,我试图扩展顶级节点,如果它们具有以下值:“事件”或“关闭”,其余节点可以保持关闭状态。我使用以下代码来创建我的 Treeview : if (CI.Pop
我是一名优秀的程序员,十分优秀!