2014-02-20 161 views
0

这应该是一个简单的,但我不能找到任何这是越来越烦,有没有其他人有运气与此一...诉诸剑道UI电网

我加入项目剑道绑定到数据源一个网格。有没有一种方法可以使用网格?

$("#grid").data("kendoGrid").dataSource.add(data); 
    $("#grid").data("kendoGrid").dataSource.sort(); 

,或者当我卡恩的 $("#grid").data("kendoGrid").refresh();这应该对它进行排序

真的不能得到任何工作,我希望能够动态地记录添加到网格,并有电网度假村。

我这是怎么定义我的网格在我的CSHTML页

@(Html.Kendo().Grid(Model.List) 
.Name("grid") 
.Columns(columns => 
{ 
    columns.Bound(p => p.Id).Width(100); 
    columns.Bound(p => p.Age).Width(100); 
    columns.Bound(p => p.Name).Width(100); 
}) 
.Events(events => events.Change("onChange").DataBound("onDataBound")) 
.DataSource(dataSource => dataSource 
    .Ajax() 
    .Model(m => m.Id(g => g.Gid)) 
    .Read(read => read.Action("GetName", "NamesController", new { Id = Model.Id }).Type(HttpVerbs.Get)) 
    .Sort(sort => { 
     sort.Add(p => p.Id); 
     sort.Add(p => p.Age); 
     sort.Add(p => p.Name); 
    }) 

    ) 

回答

1

数据源有sort方法(文档here)。基本上你需要修改排序标准,然后调用这个方法。

实施例:

var dataSource = new kendo.data.DataSource({ 
    data: [ 
    { name: "Jane Doe", age: 30 }, 
    { name: "John Doe", age: 33 } 
    ] 
}); 
dataSource.sort({ field: "age", dir: "desc" }); 
+0

所以每次我将数据添加到数据源对象我需要重新定义排序标准?那看起来不正确。 –

+0

不,你可能会在数据源中定义排序条件,所以应该对它进行排序。 – OnaBai

+0

在此处检查:http://jsfiddle.net/LT9p7/您将看到添加的元素自动插入_right_位置。 – OnaBai

0
.DataSource(dataSource => dataSource   
.Ajax() 
.ServerOperation(false)   
) 

基本上设置.ServerOperation(假)解决此问题。这将使客户端排序