我希望我的功能表在第一次出现时在第一列上显示排序,而不是要求用户通过单击列标题对其进行排序。我还没有找到一种方法来做到这一点。
不确定这是否是最好的解决方案,如果能够在构造函数中设置它会很好,但是如果您在网格触发其加载事件后调用
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" }]);
})
当我在近 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)。