FeatureTableViewModel

AMD: require(["geoscene/widgets/FeatureTable/FeatureTableViewModel"], (FeatureTableVM) => { /* code goes here */ });
ESM: import FeatureTableVM from "@geoscene/core/widgets/FeatureTable/FeatureTableViewModel";
类: geoscene/widgets/FeatureTable/FeatureTableViewModel
继承于:FeatureTableViewModel Accessor
起始版本:GeoScene API for JavaScript 4.15

提供 FeatureTable 微件的逻辑,该微件允许用户以表格格式查看要素属性中的内容。

另请参阅:

构造函数

new FeatureTableViewModel(properties)
参数:
properties Object
optional

有关可能传递到构造函数中的所有属性的列表,请参阅属性

属性概述

可以设置、检索或侦听任何属性。请参阅使用属性主题。
显示继承的属性 隐藏继承的属性
名称 类型 描述 类:
Collection<(GeometryFilter|SelectionFilter)>更多详情

一个只读属性,指示表使用的过滤器的类型。

更多详情FeatureTableViewModel
Boolean更多详情

指示是否在表中显示 Attachments 字段。

更多详情FeatureTableViewModel
Boolean更多详情

指示在刷新图层时是否刷新表。

更多详情FeatureTableViewModel
String更多详情

类的名称。

更多详情Accessor
Boolean更多详情

指示是否对要素表中的数据启用编辑。

更多详情FeatureTableViewModel
FieldColumnConfig[]更多详情

单个配置对象的数组。

更多详情FeatureTableViewModel
Geometry更多详情

设置此属性可过滤表中显示的要素。

更多详情FeatureTableViewModel
Collection<string>更多详情

要在表中保持隐藏的字段的集合。

更多详情FeatureTableViewModel
Boolean更多详情

指示在选择行时是否高亮显示关联的要素。

更多详情FeatureTableViewModel
FeatureLayer|SceneLayer|GeoJSONLayer|CSVLayer|WFSLayer|ImageryLayer更多详情

关联的 FeatureLayerSceneLayerGeoJSONLayerCSVLayerImageryLayerWFSLayer,其中包含要在微件中显示的字段和属性。

更多详情FeatureTableViewModel
Boolean更多详情

指示表中是否支持对多个列进行排序。

更多详情FeatureTableViewModel
String更多详情

视图模型的状态。

更多详情FeatureTableViewModel
MapView更多详情

MapView 的引用。

更多详情FeatureTableViewModel

属性详细信息

activeFilters Collection<(GeometryFilter|SelectionFilter)>readonly
起始版本:GeoScene API for JavaScript 4.23

一个只读属性,指示表使用的过滤器的类型。它返回按几何的过滤器或使用行的 ObjectId 的选区。

attachmentsEnabled Boolean

指示是否在表中显示 Attachments 字段。仅当要素图层支持附件时,这才适用。目前,此字段仅显示每个要素的附件计数。

featuretable attachments enabled

默认值:false
autoRefreshEnabled Boolean
起始版本:GeoScene API for JavaScript 4.23

指示在刷新图层时是否刷新表。

默认值:true
declaredClass Stringreadonly inherited

类的名称。声明的类名格式为 geoscene.folder.className

editingEnabled Boolean
起始版本:GeoScene API for JavaScript 4.16

指示是否对要素表中的数据启用编辑。双击像元将启用对该值的编辑。

编辑权限可以按以下优先级细分:

  1. Field - 这派生自 FeatureLayerSceneLayer。它采用在 Field.editable 属性中设置的内容。要启用编辑,必须始终为 true。可以使用字段列配置覆盖此内容。
  2. Config - 可以通过设置 FieldColumnConfig可编辑属性来配置字段的可编辑权限。
  3. FeatureTable - 必须在表上设置 editingEnabled 属性,才能启用任何类型的编辑。

例如,如果在微件中禁用了表编辑,即不设置 enableEditing,仍可以通过设置可编辑属性来启用对特定列的编辑。反之亦然,如果启用了表编辑,则可以使用字段配置来禁用对特定列的编辑。

最终,如果服务的字段不可编辑,则无法使用上述选项之一覆盖其权限。

featuretable editing

默认值:false
另请参阅:
  • [示例 - 启用了编辑的 FeatureTable]

单个配置对象的数组。您可以在此处指定要显示的字段以及要如何显示这些字段。

如果未设置,则将包括除 CreationDateCreatorEditDateEditorGlobalID 之外的所有字段。否则,由开发人员设置要覆盖和显示的正确字段。

默认值: `CreationDate``Creator``EditDate``Editor``GlobalID`之外的所有字段
filterGeometry Geometryautocast
起始版本:GeoScene API for JavaScript 4.19

设置此属性可过滤表中显示的要素。它接受几何(例如范围),并将其用作空间过滤器。修改此属性时,FeatureTable 将完全刷新并重新查询所有要素。

另请参阅:
示例:
// Filter the table to only display the associated feature(s) that fall within the filterGeometry's geometry, (e.g. Extent)
featureLayer.viewModel.watch("loaded", () => {
  reactiveUtils.when(() => view.updating === false, () => {
    // Get the new extent of view/map whenever map is updated
    if (view.extent) {
      // Filter and show only the visible features in the feature table
      featureTable.viewModel.filterGeometry = view.extent;
    }
  });
});
hiddenFields Collection<string>
起始版本:GeoScene API for JavaScript 4.16

要在表中保持隐藏的字段的集合。

highlightOnRowSelectEnabled Boolean
起始版本:GeoScene API for JavaScript 4.16

指示在选择行时是否高亮显示关联的要素。

默认值:true

关联的 FeatureLayerSceneLayerGeoJSONLayerCSVLayerImageryLayerWFSLayer,其中包含要在微件中显示的字段和属性。表的分页默认为一次 50 条记录。可以使用 FeatureTable 的 pageSize 属性设置默认分页。

另请参阅:
multiSortEnabled Boolean
起始版本:GeoScene API for JavaScript 4.23

指示表中是否支持对多个列进行排序。将其与 FieldColumnConfig.initialSortPriorityFieldColumnConfig.direction 属性结合使用,可设置多个列的排序功能。

默认值:false
另请参阅:
示例:
const featureTableVM = new FeatureTableViewModel({
  layer: featureLayer,
  multiSortEnabled: true,
  fieldConfigs: [{ // autocasts to FieldColumnConfig
    name: "ObjectId",
    direction: "asc",
    initialSortPriority: 1, // This field's sort order takes second-highest priority.
  },
  {
    name: "Name",
    direction: "asc",
    initialSortPriority: 0, // This field's sort order takes the highest priority.
  },
  {
    name: "Status",
    direction: "asc",
    initialSortPriority: 2 // This field's sort order is prioritized after Name and ObjectId, respectively.
  }]
});
state Stringreadonly

视图模型的状态。

可能的值"disabled"|"loading"|"loaded"|"ready"

默认值:disabled
view MapView

MapView 的引用。必须设置此属性,地图中的选择/高亮显示才能正常工作。

方法概述

名称 返回类型 描述 类:
更多详情

这将清除所有突出显示的要素。

更多详情FeatureTableViewModel
更多详情

清除表中的当前选定内容。

更多详情FeatureTableViewModel
更多详情

清除当前 filterBySelection,以便该表显示所有表行。

更多详情FeatureTableViewModel
更多详情

取消选择表中的指定行。

更多详情FeatureTableViewModel
更多详情

使用当前行选择过滤表,并仅显示那些选定的表行。

更多详情FeatureTableViewModel
Number更多详情

返回关联要素的当前行索引。

更多详情FeatureTableViewModel
String|Number|null更多详情

返回给定指定要素 ObjectId 和关联 fieldName 的字段值。

更多详情FeatureTableViewModel
更多详情

刷新表格内容,同时保持当前滚动位置。

更多详情FeatureTableViewModel
更多详情

对整个表执行完全重置,使表滚动到最上面的行。

更多详情FeatureTableViewModel
更多详情

根据指定的索引将表滚动到一行。

更多详情FeatureTableViewModel
更多详情

选择表中的指定行。

更多详情FeatureTableViewModel
更多详情

将视图缩放至当前行选择的范围。

更多详情FeatureTableViewModel

方法详细信息

clearHighlights()
起始版本:GeoScene API for JavaScript 4.16

这将清除所有突出显示的要素。

不会取消选择关联的行。

clearSelection()
起始版本:GeoScene API for JavaScript 4.16

清除表中的当前选定内容。

clearSelectionFilter()
起始版本:GeoScene API for JavaScript 4.23

清除当前 filterBySelection,以便该表显示所有表行。

另请参阅:
deselectRows(params)
起始版本:GeoScene API for JavaScript 4.16

取消选择表中的指定行。

参数:

要在要素表中取消选择的选择参数。采用单个或多个 ObjectId 或 Graphic(s)

另请参阅:
filterBySelection()
起始版本:GeoScene API for JavaScript 4.23

使用当前行选择过滤表,并仅显示那些选定的表行。

另请参阅:
getObjectIdIndex(objectId){Number}

返回关联要素的当前行索引。

参数:
objectId Number

指定要素的 ObjectId 字段。

返回:
类型 说明
Number 要素的行索引。
getValue(objectId, fieldName){String|Number|null}

返回给定指定要素 ObjectId 和关联 fieldName 的字段值。

参数:
objectId Number

指定要素的 ObjectId 字段。

fieldName String

要在其中获取关联 ObjectId 的要素值的字段的名称。

返回:
类型 说明
String | Number | null 指定要素的关联值,如使用其 ObjectId 提供的,位于给定字段值下。
示例:
// Gets the field value for the specified field name, "OPENSTATUS" with the given feature ObjectId
const featureValue = featureTable.viewModel.getValue(feature.attributes.ObjectId, "OPENSTATUS");
console.log(featureValue);
refresh()
起始版本:GeoScene API for JavaScript 4.16

刷新表格内容,同时保持当前滚动位置。

reset()
起始版本:GeoScene API for JavaScript 4.23

对整个表执行完全重置,使表滚动到最上面的行。

scrollToIndex(index)
起始版本:GeoScene API for JavaScript 4.19

根据指定的索引将表滚动到一行。

参数:
index Number

表应在其中滚动的行的索引。

selectRows(params)
起始版本:GeoScene API for JavaScript 4.16

选择表中的指定行。

参数:

要在要素表中进行选择的参数。采用单个或多个 ObjectId 或 Graphic

另请参阅:
zoomToSelection()
起始版本:GeoScene API for JavaScript 4.23

将视图缩放至当前行选择的范围。这也可以作为表中的菜单项触发。如果至少选择了一行并且在 FeatureTable 上设置了视图,则将显示此项目。

另请参阅:

类型定义

GeometryFilter

将其用于空间过滤,它是用于过滤表中数据的几何

属性:
type String
optional

所用过滤器的类型。这将始终显示为 "geometry"

geometry Geometry
optional

用于过滤出表数据的几何。

另请参阅:
SelectionFilter

使用此选项可根据表中的 ObjectId 选择表中的行。

属性:
type String
optional

所用过滤器的类型。这将始终显示为 "selection"

objectIds Number
optional

指示行的 ObjectId 的数字数组。

另请参阅:

您的浏览器不再受支持。请升级浏览器以获得最佳体验。有关更多详细信息,请参阅我们的 浏览器弃用帖子