剣道で集計関数を作成する方法はありますか?
グリッドで合計を作成しようとしています。剣道で定義された合計関数を使用すると、数値が文字列のように連結されます。私の実際の解決策は、jsを剣道から変更し、そこにmysum関数を配置することです。
それは魅力のように機能しますが、より良い解決策があるはずです。
コードを表示:
var dataSource = new kendo.data.DataSource({
pageSize: 20,
data: products,
autoSync: true,
schema: {
model: {
id: "ProductID",
fields: {
ProductID: { editable: false, nullable: true },
ProductName: { validation: { required: true } },
Category: { defaultValue: { CategoryID: 1,CategoryName:"Beverages"} },
UnitPrice: { type: "number", validation: { required: true,min: 1} }
}
}
},
aggregate: [ { field: "ProductName", aggregate: "count" },
{ field: "UnitPrice", aggregate: "mysum" }]
});
$("#grid").kendoGrid({
dataSource: dataSource,
pageable: true,
height: 430,
toolbar: ["create"],
columns: [
{ field: "ProductName", title: "Product Name", footerTemplate: "Total Count: #=count#" },
{ field: "Category", title: "Category", width: "160px", editor: categoryDropDownEditor, template: "#=Category.CategoryName#" },
{ field: "UnitPrice", title:"Unit Price", width: "120px", footerTemplate: "Total Sum: #=mysum#" },
{ command: "destroy", title: " ", width: "90px" }],
editable: true
});
剣道UI追加機能:
mysum:function(e,t,n){return (e || 0) + parseFloat(n.get(t))}