找回密码
 立即注册

QQ登录

只需一步,快速开始

hhh2024

注册会员

9

主题

25

帖子

86

积分

注册会员

积分
86
hhh2024
注册会员   /  发表于:2024-9-2 15:36  /   查看:545  /  回复:4
1金币
求问,spreadjs怎么设置初始化排序,代码如下所示,但是没有生效 捕获.PNG
  1. var sheet = spread.getSheet(0);
  2.     var data = {
  3.       name: 'Jones', region: 'East',
  4.       sales: [
  5.         { orderDate: '活动', item: 'Pencil', units: 95, cost: 1.99, operation: '操作' },
  6.         { orderDate: '活动', item: 'Pencil', units: 60, cost: 4.99, operation: '操作' },
  7.         { orderDate: '活动', item: 'PenSet', units: 16, cost: 15.99, operation: '操作' }
  8.       ]
  9.     };
  10.     let tableColumns = [];
  11.     let names = ['orderDate', 'item', 'units', 'cost', 'operation'];
  12.     let labels = ['Order Date', 'Item', 'Units', 'Cost', 'Operation'];
  13.     let table = sheet.tables.add('tableRecords', 0, 0, 4, 5);
  14.     table.autoGenerateColumns(false);
  15.     names.forEach(function (name, index) {
  16.       let tableColumn = new GC.Spread.Sheets.Tables.TableColumn();
  17.       tableColumn.name(labels[index]);
  18.       tableColumn.dataField(name);
  19.       tableColumns.push(tableColumn);
  20.     });

  21.     table.bindColumns(tableColumns);
  22.     table.bindingPath('sales');
  23.     let source = new GC.Spread.Sheets.Bindings.CellBindingSource(data);
  24.     sheet.setDataSource(source);
  25. // 初始化排序
  26.     sheet.sortRange(1, 0, 3,5, true, [{
  27.       index: 2,
  28.       ascending: true
  29.     }]);
  30.     sheet.invalidateLayout();
  31.     sheet.repaint();
复制代码


最佳答案

查看完整内容

您提供的图示中的筛选标识是通过筛选框中的降序排序后的标识,如果您希望Units列头也有类似表示排序方式的标识,那需要使用筛选框的排序功能,而非Worksheet的排序功能。 具体地,如下思路所述: 1. 对Table获取筛选器HideRowFilter实例. 2. 使用HideRowFilter:sortColumn()对指定列按照指定排序方式排序。 可以参考官网API文档了解相关API详情: Table:rowFilter()--https://demo.grapecity.com.cn/spreadjs/help/api/cl ...

4 个回复

正序浏览
Wilson.Zhang
超级版主   /  发表于:2024-9-23 16:21:53
5#
您好!由于您较长时间未回复,且从跟帖回复中了解到已获得有效解答,那就结帖了。如有问题,欢迎继续发新帖沟通。
回复 使用道具 举报
hhh2024
注册会员   /  发表于:2024-9-2 17:17:12
3#
本帖最后由 hhh2024 于 2024-9-2 17:19 编辑
Wilson.Zhang 发表于 2024-9-2 17:00
您好!从您提供的代码片段了解到您可能需要对Units列数据进行升序排序,我们在17.0.0版本和最新的17.1.4版 ...

想问下为什么Units那列的筛选标识没变?类似于如图所示 捕获.PNG
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-2 17:00:01
2#
您好!从您提供的代码片段了解到您可能需要对Units列数据进行升序排序,我们在17.0.0版本和最新的17.1.4版本执行了您提供的代码片段,运行结果表明排序结果正常,如下动图所示为17.1.4版本运行效果:
Table初始排序生效.gif
回复 使用道具 举报
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2024-9-2 15:36:56
来自 4#
hhh2024 发表于 2024-9-2 17:17
想问下为什么Units那列的筛选标识没变?类似于如图所示

您提供的图示中的筛选标识是通过筛选框中的降序排序后的标识,如果您希望Units列头也有类似表示排序方式的标识,那需要使用筛选框的排序功能,而非Worksheet的排序功能。
具体地,如下思路所述:
1. 对Table获取筛选器HideRowFilter实例.
2. 使用HideRowFilter:sortColumn()对指定列按照指定排序方式排序。

可以参考官网API文档了解相关API详情:
Table:rowFilter()--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Tables.Table#rowfilter
HideRowFilter:sortColumn()--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Filter.HideRowFilter#sortcolumn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部