更改 Arcgis Javascript 要素表的默认排序顺序

问题描述 投票:0回答:2

我希望我的功能表在第一次出现时在第一列上显示排序,而不是要求用户通过单击列标题对其进行排序。我还没有找到一种方法来做到这一点。

arcgis-js-api
2个回答
2
投票

不确定这是否是最好的解决方案,如果能够在构造函数中设置它会很好,但是如果您在网格触发其加载事件后调用

myFeatureTable.grid.set('sort', [{ attribute: ''}]);
,这将在它出现在 UI 中之前对其进行排序。例如:

on(myFeatureTable, "load", function(){
  myFeatureTable.grid.set('sort', [{ attribute: "<attribute used in first column>"}]);
});

另一种方法,如果你不需要

dojo/on
,可以使用特征表的on方法。

myFeatureTable.on('load', function () {
  // Sort on the Name attribute
  myFeatureTable.grid.set('sort', [{ attribute: "Name" }]);
})

0
投票

当我在近 8 年后回答时,我猜很多事情都发生了变化。配置FeatureTable时,您还可以配置FieldColumnTemplate,其属性之一是“direction”。

来自文档:

“控制列的排序顺序。此属性仅适用于FeatureTable小部件中的一列。如果在同一FeatureTable中的多个fieldColumn上指定了方向,则仅在具有最高索引的列上适用. 例如,假设名为 ObjectId 的第一列设置为 asc,并且表顺序中后面的另一列也设置了方向,则对于最后一个具有设置方向的列,初始 ObjectId 列的方向将被忽略。

结合使用 FieldColumnTemplate.initialSortPriority 和 FeatureTable.multiSortEnabled 属性来设置多列的排序功能。”

const fieldColumnTemplate = new FieldColumnTemplate({
  fieldName: "full_name",
  label: "Full name",
  direction: "asc", // In order to use initialSortPriority, make sure direction is set
  initialSortPriority: 0 // This field's sort order takes the highest priority.
});

我已经使用了这种方法,它对我有用(使用 ArcGIS Javascript API 版本 4.25)。

© www.soinside.com 2019 - 2024. All rights reserved.