小编son*_*da1的帖子

使用Kendo UI MVC Grid包装器的聚合函数

眼镜

剑道:2012.3.1114

.Net:4.5

MVC:4.0

问题

我使用DataTable作为模型绑定我的网格,我需要有聚合值.如果我使用下面的代码作为我的基础(取自Kendo UI代码库),似乎无法设置聚合函数.

@(Html.Kendo().Grid(Model)
    .Name("Grid")    
    .Columns(columns => {
        foreach (System.Data.DataColumn column in Model.Columns)
        {
            columns.Bound(column.DataType, column.ColumnName);
        }
    })
    .Pageable()
    .Sortable()
    .Scrollable()
    .Filterable()
    .Groupable()
    .DataSource(dataSource => dataSource
        .Ajax()
        .Read(read => read.Action("Read", "Home"))   
    )
)
Run Code Online (Sandbox Code Playgroud)

回到Telerik MVC控件的时代,我可以设置聚合函数,你可以在添加绑定列时设置聚合,但是在已经向下移动到数据源内部的Kendo UI包装器中.

Telerik网格:

columns.Bound("ColumnName").Aggregate(aggregates => aggregates.Count().Min().Max())
Run Code Online (Sandbox Code Playgroud)

如果我尝试在DataSource中设置agregate,我会得到一个可爱的异常"'count'未定义",这有点模糊.

if (column.ColumnName == "ProductID")
{
    columns
        .Bound(column.DataType, column.ColumnName)
        .ClientFooterTemplate("Count: #=count#");
}
...
.Aggregates(aggregates =>
{
aggregates.Add(a => "ProductID").Count();
})
Run Code Online (Sandbox Code Playgroud)

有没有办法解决总体问题?

asp.net-mvc kendo-ui kendo-grid

3
推荐指数
1
解决办法
7022
查看次数

Kendo UI网格:使用新数据每60秒刷新一次网格数据:dataSource和observe()

我希望每隔60秒刷新一次Kendo UI网格内容,并提供最新数据.

编辑:这是在初始配置中分配dataSource的方式:

parsedData = $.parseJSON(data);

var dataSource = new kendo.data.DataSource({
    data: parsedData
});

$("#grid").kendoGrid({
    dataSource: dataSource, 
    . . .
Run Code Online (Sandbox Code Playgroud)

网格的dataSource可以一举重新分配吗?或者更好的是单独删除dataSource.data中的项目,还是清除数组,然后注入新项目或完整替换数组?在Kendo dataSource中实现观察模式是否表明了一种方法?

我还没有开始这个,但根据我对网格的经验,回到Visual Basic的早期阶段,更改网格的数据源一直有不良的副作用,我没有理由期望这会更平滑航行.希望我错了.

第二个编辑#(2013年4月26日):如果有一组新的具有相同的结构,以前行的刷新网格的基础数据,一种方法一种方法,将保留展开/折叠网格的分组的状态,这将非常适合我们的目的.

grid timer kendo-ui kendo-grid

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

kendo-grid ×2

kendo-ui ×2

asp.net-mvc ×1

grid ×1

timer ×1