【发布时间】:2012-04-05 01:39:51
【问题描述】:
【问题讨论】:
标签: javascript slickgrid
【问题讨论】:
标签: javascript slickgrid
在最新版本上,您可以这样做:
grid.setSortColumn("myColId",true); //columnId, ascending
您也可以使用 setSortColumn*s*
设置多个【讨论】:
sortcol = 'myColName' 后,我最终触发了dataView.sort(comparer, false)。 (我应该添加并接受我自己的答案吗?)
dataView.setSortColumn,但没有成功。但是在我的网格实例上使用它是有效的。就像我上面的解决方案一样。
sort() 和 setSortColumn() 都是触发事件。确保它们位于代码的末尾。如果您以更详细的方式开始自己的问题,请在此处发布链接,我会看看是否可以提供帮助。
在此处查看我的解决方案。这最初在不使用 Dataview 的情况下对列应用排序。
我认为它可以满足您的需求。
顺便说一句,因为您使用的是 Dataview。你也可以试试这个。但我没有亲自尝试过。
dataview.reSort()
【讨论】:
我有一个有趣的想法,它只是启用多列标题排序(example-multi-column-sort.html),然后在加载网格后模拟标题上的 click()当网格第一次出现时,我想对行进行排序(“时间”是我正在排序的列的名称)。列标题的 ID 的计算类似于网格的根 div 的 ID(至少现在:0)):
var gridId = $('#myGrid').attr("class");
gridId = '#'+gridId.replace(" ui-widget","")+'time';
$(gridId).click();
然后用户可以单击他们想要的任何其他列标题,但我只是为他们单击了第一个。
【讨论】:
这最终成为了我的解决方案,只需按照您希望的排序方式为光滑的网格提供数据。然后让 multisort 在剩下的时间里处理它。仍然没有以编程方式设置排序和更新网格,但它快速简单
this.data = res.data.sort((a, b) => {
let x = a[config.sortField], y = b[config.sortField];
return (x == y ? 0 : (x > y ? 1 : -1));//no ===
})
【讨论】: