【问题标题】:SlickGrid: determine whether row is selectedSlickGrid:判断行是否被选中
【发布时间】:2015-06-11 00:26:34
【问题描述】:

SlickGrid:

网格行是否有 'selected'/'isSelected' 或类似属性?

如果我使用“grid.getSelectedRows”,那么这些行似乎是按照它们被选中(单击)的顺序返回的,而不一定是它们在网格上出现的顺序。我希望所选行以可见的顺序从上到下。

我可以使用 grid.getDataItem 获取每个项目,但我如何确定该行是否被选中?我需要行的属性而不是数据项吗?

for (var i = 0, ii = grid.getDataLength(); i < ii; i++) {
var item = grid.getDataItem(i);
if (!item.selected()) {          <- fails because there is no selected property
        continue;
}...

谢谢!

【问题讨论】:

  • 你试过grid.getSelectedRows()吗?
  • 好的,谢谢。 getSelectedRows 正在返回正确的行,但并不总是以正确的顺序。

标签: javascript c# slickgrid


【解决方案1】:

根据here 找到的文档,我相信this answer 将是您正在寻找的东西。 Max Brodin 的建议是正确的 grid.getSelectedRows()。

编辑: 为了满足@AnotherFineMess 的要求,使其在网格中从上到下排序,代码应为:

var items = grid.getSelectedRows().sort(function(a,b){return a - b});

【讨论】:

  • 问题是grid.getSelectedRows() 返回的行列表是按照它们被选中的顺序排列的。我想要一个根据屏幕视图从上到下排序的选定行列表,无论选择行的顺序如何。
  • 为什么不直接使用 grid.getSelectedRows().sort(); 对其进行排序?
  • 网格确实有排序选项,是的。不幸的是,用户不会总是从顶部开始并按顺序单击他们需要的行。他们在整个地方啄并选择,然后我需要维护所选列表中的排序顺序,从上到下。
  • getSelectedRows() 函数将为您提供已点击的索引数组。这些索引代表网格中的行。我添加到 getSelectedRows() 函数末尾的 sort() 方法将按照从上到下的顺序对这些索引进行排序。
  • 谢谢,快到了。如果我选择 id 为 [10, 9, 8] 的项目,那么它会排序为 [10, 8, 9] 而不是 [8, 9 , 10] 所以我想它会将 id 排序为字符串而不是整数?
猜你喜欢
  • 2014-03-09
  • 1970-01-01
  • 1970-01-01
  • 2011-06-22
  • 1970-01-01
  • 1970-01-01
  • 2019-07-24
  • 2018-01-15
  • 2011-03-07
相关资源
最近更新 更多