这是我的代码.它可以工作,如果你想遍历所有行.现在,QA告诉我,我必须支持过滤器.因此,当用户使用过滤器时,只有行的子集将显示在网格上.我只需要遍历那些行.
var entityGrid = $("#EntitesGrid").data("kendoGrid");
var data = entityGrid.dataSource.data();
var totalNumber = data.length;
for(var i = 0; i<totalNumber; i++) {
var currentDataItem = data[i];
VersionIdArray[i] = currentDataItem.VersionId;
}
Run Code Online (Sandbox Code Playgroud)
我试过了.
var data = entityGrid.dataSource.data().fetch();
Run Code Online (Sandbox Code Playgroud)
和
var data = entityGrid.dataSource.data().filter();
Run Code Online (Sandbox Code Playgroud)
无法让它运作.
qin*_*126 24
为了将来的参考和感兴趣的人,我找到了解决方案:
http://colinmackay.scot/2012/07/23/kendo-ui-paging-and-accessing-the-filtered-results-in-javascript/
它的工作原理是首先获取网格的数据源,获取过滤器和数据,使用数据创建新查询并对其应用过滤器.虽然这确实导致获得过滤器的结果,但它确实具有处理过滤器操作两次的明显缺点.
function displayFilterResults() {
// Gets the data source from the grid.
var dataSource = $("#MyGrid").data("kendoGrid").dataSource;
// Gets the filter from the dataSource
var filters = dataSource.filter();
// Gets the full set of data from the data source
var allData = dataSource.data();
// Applies the filter to the data
var query = new kendo.data.Query(allData);
var filteredData = query.filter(filters).data;
// Output the results
$('#FilterCount').html(filteredData.length);
$('#TotalCount').html(allData.length);
$('#FilterResults').html('');
$.each(filteredData, function(index, item){
$('#FilterResults').append('<li>'+item.Site+' : '+item.Visitors+'</li>')
});
}
Run Code Online (Sandbox Code Playgroud)
非常感谢!!!有了这个帮助,我现在做到了......
kendo.data.DataSource.prototype.dataFiltered = function () {
// Gets the filter from the dataSource
var filters = this.filter();
// Gets the full set of data from the data source
var allData = this.data();
// Applies the filter to the data
var query = new kendo.data.Query(allData);
// Returns the filtered data
return query.filter(filters).data;
}
Run Code Online (Sandbox Code Playgroud)
所以现在我可以很容易地获得我的过滤数据!真棒!
| 归档时间: |
|
| 查看次数: |
47709 次 |
| 最近记录: |