【问题标题】:Slickgrid Filtering without Dataview没有数据视图的 Slickgrid 过滤
【发布时间】:2012-02-29 15:46:03
【问题描述】:

是否可以在不使用 DataView 的情况下过滤 Slickgrid?

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

我没有可用的示例 atm。谢谢

后期编辑:

在做了更多的功课之后,可过滤的数据网格就是在嵌套数组中获取匹配的索引...以获取使用 grid.setData(filterData);grid render; 更新的实时排序结果集。应该做到以下几点

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

【问题讨论】:

  • 您的代码令人困惑,因为原始问题(或过滤 SlickGrid 数据)与数据的结构和过滤器的作用无关。

标签: slickgrid


【解决方案1】:

过滤底层数据数组并调用grid.setData(filteredData)

【讨论】:

  • 将尝试,期待回复,以防我再次卡住,将进行一些测试并确认您的解决方案
  • 为了更好地理解我需要编写的代码,我需要在表头上触发一个函数,该函数 greps 多维数据数组,然后是 grid.setData(filteredArray) ?我是在正确的轨道上还是有更简单的方法?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-27
  • 2012-08-21
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 2014-06-01
相关资源
最近更新 更多