Dojo 如何从GridX获取筛选行?

Dojo 如何从GridX获取筛选行?,dojo,dojo.gridx,Dojo,Dojo.gridx,我将Dojo GridX与许多模块一起使用,包括过滤器: grid=新网格({ cacheClass:Cache, 结构:结构,, 店:店,, 模块:[排序、列大小调整器、分页、分页栏、CellWidget、GridEdit、, 过滤器、过滤器栏、快速过滤器、HiddenColumns、HScroller], 自动高度:真,自动宽度:假, 分页条大小:[25,50,100], 分页栏位置:“顶部,底部”, },gridNode); grid.filterBar.applyFilter({type

我将Dojo GridX与许多模块一起使用,包括过滤器:

grid=新网格({
cacheClass:Cache,
结构:结构,,
店:店,,
模块:[排序、列大小调整器、分页、分页栏、CellWidget、GridEdit、,
过滤器、过滤器栏、快速过滤器、HiddenColumns、HScroller],
自动高度:真,自动宽度:假,
分页条大小:[25,50,100],
分页栏位置:“顶部,底部”,
},gridNode);
grid.filterBar.applyFilter({type:'all',条件:[
{colId:'type',condition:'equal',type:'Text',value:'car'}
]})
我想访问与设置的筛选器匹配的项目。我浏览了DOM explorer中的
网格
属性,在许多模块中发现了许多存储引用,但它们都包含所有项


是否有可能找出哪些项在网格中可见,因为它们是匹配的筛选器,或者至少是那些在当前页面上可见的项?如果是这样,怎么做?

我能够使用gridX Exporter获得过滤后的gridX数据行。将此导出器模块添加到网格中。此模块不导出过滤后的数据。然后,将CSV转换为Json。有很多CSV到Json的转换javasripts

this.navResult.grid.exporter.toCSV(args)。然后(this.showResult,this.onError,null)

我的解决方案是:

try {
    var filterData = [];
    var ids = grid.model._exts.clientFilter._ids;
    for ( var i = 0; i < ids.length; ++i) {
        var id = ids[i];
        var item = grid.model.store.get(id);
        filterData.push(item);
    }
    var store = new MemoryStore({
        data : filterData
    });

} catch (error) {
    console.log("Filter is not set.");
}
试试看{
变量filterData=[];
var id=grid.model.\u exts.clientFilter.\u id;
对于(变量i=0;i
基于AirG答案,我设计了以下解决方案。考虑到有两种情况,带或不带过滤器,如果应用了某种排序,则必须知道行的顺序。至少这对我有用

var存储=新存储({
idProperty:“idPeople”,数据:[
{idPeople:1,名字:'John',分数:130,城市:'New York',生日:'31/02/1980'},
{idPeople:2,name:'Alice',score:123,city:'Wáshington',生日:'07/12/1984'},
{idPeople:3,姓名:'Lee',分数:149,城市:'Shanghai',生日:'8/10/1986'},
...
]
});
gridx=新gridx({
id:'mygridx',
cacheClass:Cache,
店:店,,
...
模块:[
...
{
模块类:国防部,
默认显示:错误,
是的,
肖沃:是的,
detailProvider:gridXDetailProvider
},
...
],
...
}“网格节点”);
函数gridXDetailProvider(网格、rowId、detailNode、渲染){
gridXGetDetailContent(网格、rowId、detailNode);
rendered.callback();
归还;
}
函数gridXGetDetailContent(网格、rowId、detailNode){
if(grid.model.\u exts.clientFilter.\u id==undefined | | grid.model.\u exts.clientFilter.\u id==0){
//无过滤器,带或不带排序
detailNode.innerHTML='Hello'+grid.row(grid.model.\u cache.\u priority.indexOf(rowId)).item().name+“带id”+
grid.row(grid.model.\u cache.\u priority.indexOf(rowId)).item().idPeople;
}否则{
//带过滤器,带或不带排序
detailNode.innerHTML='Hello'+grid.row(grid.model.\u exts.clientFilter.\u ids.indexOf(rowId)).item().name+“带id”+
grid.row(grid.model._exts.clientFilter._id.indexOf(rowId)).item().idPeople;
}
}
function getFilteredData() {
    var filteredIds = grid.model._exts.clientFilter._ids;

    return grid.store.data.filter(function(item) {
        return filteredIds.indexOf(item.id) > -1;
    });
}