【问题标题】:GWT (smartgwt) grid sort selected records topGWT (smartgwt) 网格排序选择的记录顶部
【发布时间】:2016-08-22 14:15:14
【问题描述】:

我有一个网格,用户可以通过每条记录前面的复选框选择记录。现在我需要根据选择对记录进行排序,以便所有选择的记录都应该放在最前面,然后是未选择的记录。

是否有任何标准功能可以实现这一点?作为替代方案,我考虑将选择状态保存为每条记录的属性并根据属性进行排序。

列的代码是:

gridRealmDt.setSelectionType(SelectionStyle.SIMPLE);
gridRealmDt.setSelectionAppearance(SelectionAppearance.CHECKBOX);

我尝试描述我使用的代码,因为受影响的代码深深嵌套在我们自己的框架类中。
gridRealmDt 是 smartgwt ListGrid 的子类。在我的对话框中,创建一个网格实例,该实例创建一个数据库绑定数据源的实例。加载对话框时,会从数据库中获取记录,然后注册一个 dataArrivedHandler,在其中我选择与另一个表中的记录匹配的记录。

我尝试将选择属性放在一个额外的字段中,并将其用于我的其他排序条件之前的排序,但这不起作用。这是我正在使用的字段的代码。

ListGridField txtSelected = new ListGridField(SELECTED, "");
txtSelected.setHidden(true);
txtSelected.setSortByDisplayField(true);
txtSelected.setCanSortClientOnly(true);

当我没有设置 canSortClientOnly 属性时,order by 会发送到我的数据库中,从而导致错误,因为表不包含该字段,所以我设置了该属性。现在我收到以下错误

从排序说明符数组中删除字段,因为它指定 canSort 仅限客户端:true 并且所有数据还不是客户端。

我还尝试在 Name 字段上使用 sortNormilizer,这是我的主要排序标准,但在将选择值设置为记录之前调用了规范化器。

record.setAttribute(CARealmDS.SELECTED,selected ? "a" : "b");

我也找不到在选择更改时调用规范器的方法。

目前我们使用的是 Smart GWT 版本 6.0p。

【问题讨论】:

  • 请提供网格的示例代码以及如何生成复选框字段。此外,Smartgwt 版本有助于查看您可以访问哪些 api。

标签: sorting gwt grid selection smartgwt


【解决方案1】:

我认为没有任何标准功能。只需使用网格存储更新。首先放置检查的项目。

【讨论】:

  • 你能给我上面提到的函数的示例调用吗?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-09
  • 2014-01-15
  • 1970-01-01
相关资源
最近更新 更多