我用12列(12个月)绑定一个剑道网格,我想要一个最后一列,它将是所有12个月(一年中的总和)的聚合。 我有这个:
@(Html.Kendo().Grid<WebAnalise.Models.map_sel_fabr_prod>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.nameFabr).Visible(true).Width(50).Title("Fabr");
columns.Bound(p => p.nameProd).Width(100).Title("Prod");
columns.Bound(p => p.tot01).Width(30).Title("Jan");
columns.Bound(p => p.tot02).Width(30).Title("Fev");
columns.Bound(p => p.tot03).Width(30).Title("Mar");
columns.Bound(p => p.tot04).Width(30).Title("Abr");
columns.Bound(p => p.tot05).Width(30).Title("Mai");
columns.Bound(p => p.tot06).Width(30).Title("Jun");
columns.Bound(p => p.tot07).Width(30).Title("Jul");
columns.Bound(p => p.tot08).Width(30).Title("Ago");
columns.Bound(p => p.tot09).Width(30).Title("Set");
columns.Bound(p => p.tot10).Width(30).Title("Out");
columns.Bound(p => p.tot11).Width(30).Title("Nov");
columns.Bound(p => p.tot12).Width(30).Title("Dez");
//我想在这里添加新专栏!像这样的东西,但聚合! (tot01 + tot02 + tot03 ... + tot12)!!不仅是一列的价值:
columns.Bound(p => p.tot01).Width(30).Title("TOT");
})
有人可以帮忙吗?
答案 0 :(得分:2)
试试这个
的 强> 的 ** * ** * ** * 的** * ** 强> 格的 * ** * ** * * 强>
@(Html.Kendo().Grid<WebAnalise.Models.map_sel_fabr_prod>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.tot11).Width(30).Title("Nov");
columns.Bound(p => p.tot12).Width(30).Title("Dez");
columns.Bound(c => c.Total).Title("Total")
.ClientTemplate("#= kendo.format('{0:c}',Total) #")
.ClientFooterTemplate("<div>Grand Total: #= kendo.format('{0:c}',sum) #</div>");
}
.DataSource(dataSource => dataSource
.Ajax()
.Aggregates(aggregates =>
{
aggregates.Add(p => p.Total).Sum();
})
.PageSize(20)
.Events(events => events.Error("error_handler"))
.ServerOperation(false)
.Events(e=>e.Edit("onEdit").Save("onSave"))
)
的 强> 的 ** * ** * ** * 的强> 的Javascript 的 * ** * ** * ** * < / EM> ** * ** * *** 强>
function onEdit(e)
{
var indexCell = e.container.context.cellIndex;
if (typeof indexCell != "undefined") {
var input = e.container.find(".k-input");
input.blur(function () {
e.model.set("Total", (e.model.tot01 * e.model.tot02 *e.model.tot03);
});
var texbox = e.container.find(".text-box");
texbox.change(function () {
e.model.set("Total", (e.model.tot01 * e.model.tot02 *e.model.tot03);
});
}
}
function onSave(e)
{
//update the aggregate columns
var dataSource = this.dataSource;
e.model.one("change", function () {
dataSource.one("change", function () {
dataSource.aggregates().Total.sum;
});
dataSource.fetch();
});
}
此致
答案 1 :(得分:1)
您可以使用Kendo UI Grid的内置聚合功能,如本演示所示:
http://demos.telerik.com/kendo-ui/web/grid/aggregates.html
您可以在最后一列的页脚模板中显示聚合信息(在演示中显示)
答案 2 :(得分:0)
您是否使用LinQ或ADO进行数据访问?无论它是什么都没关系,但您可以使用LinQ查询或存储过程返回总和,并将总和与模型类的属性联系起来