2012-02-08 69 views
1

是否可以在不使用DataView的情况下过滤Slickgrid?无数据视图的Slickgrid过滤

如果不可能,应该如何构造数据数组才能正确显示?

我没有一个工作示例atm。由于

后来编辑:

做一些功课多后,过滤数据网格是所有有关获取嵌套数组中的匹配指标......得到的是它和grid.setData更新的实时排序结果集( filterData);网格渲染;一个应执行以下操作

function intersect(a, b) // find an intersection of 2 arrays (google result on SO 
{ 
    var ai=0, bi=0; 
    var a = a.sort(); 
    var b = b.sort(); 
    var result = new Array(); 

    while(ai < a.length && bi < b.length) 
    { 
    if  (a[ai] < b[bi]){ ai++; } 
    else if (a[ai] > b[bi]){ bi++; } 
    else /* they're equal */ 
    { 
     result.push(a[ai]); 
     ai++; 
     bi++; 
    } 
    } 

    return result; 
} 

// given results sets are arrays of indexes matching search criteria 
a = [1,2,3,4]; 
b = [2,3,4,5]; 
c = [3,4,5,6]; 
d = [4,5,6,7]; 

// should reunite in a nested array 
array = [a,b,c,d]; 

// check intersections for each array[k] and array[k+1] 
k = array[0]; 
for (var i = 0; i<array.length-1; i++){ 
    k = intersect(k,array[i+1]); 
} 

console.log(k) // returns 4 

// k array is the index array that 
// is used to build filterData[i] = data[j] 
// depends if id is stored in data or in case 
// of a database, it is stored in data 

// tested in firebug 
// thanks 
+0

由于原始问题(或过滤SlickGrid数据)与数据结构以及过滤器的工作方式无关,因此您的代码很混乱。 – Tin 2012-02-09 20:24:10

回答

3

过滤底层数据阵列和呼叫grid.setData(filteredData)

+0

会尝试,期待一个答复,如果我再次陷入困境,将进行一些测试并确认您的解决方案 – 2012-02-08 08:07:13

+0

以更好地理解我需要编写的代码,我需要触发表头中的函数来处理多维数据数组,然后grid.setData(filteredArray)?我在正确的轨道上还是有一个更简单的方法? – 2012-02-08 08:28:31

+0

作品,谢谢 – 2012-02-08 11:51:46