第三次单击时按升序/降序重置列排序
假设我们有一个带有可排序列的网格。
如果用户单击某列,它将按“asc”排序,然后如果用户再次单击列标题,它将按“desc”排序,现在当用户第三次单击该列时,我想要类似的功能,排序被删除,即返回到以前的样式,CSS 更改回正常/非斜体等?
Suppose we've a grid with sortable columns.
If a user clicks on a column, it gets sorted by 'asc', then if a user clicks the column header again, it gets sorted by 'desc', now I want similar functionality when a user clicks the column third time, the sorting is removed, i.e. returned to previous style, the css is changed back to normal/non-italic etc?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
今天我试图实现同样的目标。我浏览了 SlickGrid 代码,但没有找到任何“重置”功能。因此,我对 slick.grid.js v2.2 进行了一些调整。
基本上,您只需要添加一个新数组 - “latestSortColumns”,它将存储排序列状态(内部 SlickGrid sortColumns 数组的深层副本)。
(可选)添加新设置以选择加入排序重置。
更改 setupColumnSort 以在第三次单击列标题后重置排序。
在latestSortColumns中每次排序更改后存储新状态:
就是这样,现在应该可以工作了。
Today I was trying to achieve same thing. I've skimmed through SlickGrid code but didn't find any 'Reset' function. So, I've tweaked the slick.grid.js v2.2 a little bit.
Basically you just need to add a new array - 'latestSortColumns' which will store sort columns state (deep copy of internal SlickGrid sortColumns array).
Optionally add new setting to opt-in for sort reset.
Change setupColumnSort to reset sort after third click on column's header.
Store new state after every sort change in latestSortColumns:
That's all, should work now.
我调用此函数将所有列重置回原始顺序。
它要求将其中一列设置为不可排序。
在下面的示例中,我使用表的第一列 columns[0],其字段 ID 为“locus”。
然后在典型的 dataView.sort() 函数中,您对此列进行例外处理:
This is a function I call to reset all columns back to their original order.
It requires one of columns to be set up as not sortable.
In the example below I use the first column of the table, columns[0], which has the field id "locus".
Then in the typical dataView.sort() function you make an exception for this column:
表是否总是在某些列上按某种顺序排序?
如果没有,那么您必须在第一次单击列时存储大量状态,以防您想在第三次单击后恢复它。
Will the table always be sorted in some order on some column?
If not then you'll have to store a lot of state the first time a column is clicked just in case you want to restore it after a third click.