FeatureTable

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

此微件提供要素图层中每个要素属性的交互式表格视图。此外,它还适用于不与基础几何关联的独立表。使用大型数据集时,表会在用户滚动时加载其他要素。

已知限制

  • 尚不支持数字和日期格式,但将在将来的版本中添加。
  • 目前不支持查看相关记录。
  • 当前不支持查看附件,但如果要素包含附件,将显示每个要素的总计数。
  • 仅从版本 4.20 开始支持 SceneLayer。仅当 SceneLayer 具有关联的 FeatureLayer 时,才受支持。

下图显示了没有任何关联地图的独立 FeatureTable 微件。

独立 featuretable 微件

下图显示了具有关联地图的 FeatureTable 微件。

独立 featuretable 微件

有关完全控制微件样式的信息,请参阅样式设置主题。
另请参阅:

构造函数

new FeatureTable(properties)
参数:
properties Object
optional

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

示例:
// Typical usage for FeatureTable widget. This will recognize all fields in the layer if none are set.
const featureTable = new FeatureTable({
  view: view, // The view property must be set for the select/highlight to work
  layer: featureLayer,
  container: "tableDiv"
});

属性概述

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

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

更多详情FeatureTable
Boolean更多详情

更新表的关联图层后,将自动刷新表。

更多详情FeatureTable
Boolean更多详情

true 时,可以通过拖动列的标题对列进行重新排序。

更多详情FeatureTable
Collection<FieldColumn>更多详情

表中列的集合。

更多详情FeatureTable
String|HTMLElement更多详情

表示包含微件的 DOM 元素的 ID 或节点。

更多详情Widget
String更多详情

类的名称。

更多详情Accessor
Boolean更多详情

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

更多详情FeatureTable
FieldColumnConfig[]更多详情

单个字段配置对象的数组。

更多详情FeatureTable
Geometry更多详情

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

更多详情FeatureTable
Boolean更多详情

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

更多详情FeatureTable
String更多详情

创建微件时分配给微件的唯一 ID。

更多详情Widget
String更多详情

微件的默认标注。

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

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

更多详情FeatureTable
ButtonMenu更多详情

对 FeatureTable 的主菜单的引用。

更多详情FeatureTable
ButtonMenuConfig更多详情

设置此对象可自定义要素表的菜单内容。

更多详情FeatureTable
Boolean更多详情

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

更多详情FeatureTable
Number更多详情

在表格中显示要素时使用的默认页面大小。

更多详情FeatureTable
String更多详情

微件的状态。

更多详情FeatureTable
MapView更多详情

MapView 的引用。

更多详情FeatureTable
FeatureTableViewModel更多详情

此微件的视图模型。

更多详情FeatureTable
Boolean更多详情

指示微件是否可见。

更多详情Widget
VisibleElements更多详情

显示在微件中的可见元素。

更多详情FeatureTable

属性详细信息

attachmentsEnabled Boolean

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

featuretable attachmentsEnabled

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

更新表的关联图层后,将自动刷新表。

默认值:true
columnReorderingEnabled Boolean
起始版本:GeoScene API for JavaScript 4.16

true 时,可以通过拖动列的标题对列进行重新排序。

默认值:true
Autocasts from Object[]
起始版本:GeoScene API for JavaScript 4.16

表中列的集合。

表示包含微件的 DOM 元素的 ID 或节点。此属性只能设置一次。以下示例是使用微件时的所有有效用例。

示例:
// Create the HTML div element programmatically at runtime and set to the widget's container
const basemapGallery = new BasemapGallery({
  view: view,
  container: document.createElement("div")
});

// Add the widget to the top-right corner of the view
view.ui.add(basemapGallery, {
  position: "top-right"
});
// Specify an already-defined HTML div element in the widget's container

const basemapGallery = new BasemapGallery({
  view: view,
  container: basemapGalleryDiv
});

// Add the widget to the top-right corner of the view
view.ui.add(basemapGallery, {
  position: "top-right"
});

// HTML markup
<body>
  <div id="viewDiv"></div>
  <div id="basemapGalleryDiv"></div>
</body>
// Specify the widget while adding to the view's UI
const basemapGallery = new BasemapGallery({
  view: view
});

// Add the widget to the top-right corner of the view
view.ui.add(basemapGallery, {
  position: "top-right"
});
declaredClass Stringreadonly inherited

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

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

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

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

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

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

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

featuretable editing

默认值:false
另请参阅:

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

如果未设置,则将包括除 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.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.filterGeometry = view.extent;
    }
  });
});
highlightOnRowSelectEnabled Boolean
起始版本:GeoScene API for JavaScript 4.16

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

默认值:true

创建微件时分配给构件的唯一 ID。如果未由开发人员设置,它将默认为容器 ID,或者如果不存在,则将自动生成。

label String

微件的默认标注。

关联的 FeatureLayerSceneLayerGeoJSONLayerCSVLayerImageryLayerWFSLayer,其中包含要在微件中显示的字段和属性。表的分页默认为一次 50 条记录。如果图层包含的记录少于 50 条,它将使用其具有的任何计数。请注意,0 条记录不适用。

起始版本:GeoScene API for JavaScript 4.19

对 FeatureTable 的主菜单的引用。

当列的可见性更改时,将重新生成菜单的项目。使用 FeatureTable 的 menuConfigmenuConfig.items 来自定义菜单项。建议使用这些选项,而不是直接从 menu 中更新表的 items。这有助于确保菜单始终显示正确的项目。

另请参阅:
起始版本:GeoScene API for JavaScript 4.16

设置此对象可自定义要素表的菜单内容。

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

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

默认值:false
另请参阅:
示例:
const featureTable = new FeatureTable({
  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.
  }],
  container: "tableDiv"
});
pageSize Number
起始版本:GeoScene API for JavaScript 4.19

在表格中显示要素时使用的默认页面大小。默认情况下,页面加载服务返回的前 50 个要素。

不可能覆盖服务器上的最大页面大小,即。maxRecordCount,因为此属性仅适用于小于最大页面大小的设置值,即 maxRecordCount,在服务上设置的值。

默认值:50
另请参阅:
state String

微件的状态。

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

view MapView

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

此微件的视图模型。这是一个包含控制此微件行为的所有逻辑(属性和方法)的类。请参阅 FeatureTableViewModel 类以访问微件上的所有属性和方法。

指示微件是否可见。

如果 false,则该微件将不再呈现在 web 文档中。这可能会影响文档中其他元素或微件的布局。例如,如果此微件是与视图 UI 右上角关联的三个微件中的第一个,则当此微件变为不可见时,其他微件将重新定位。有关详细信息,请参阅 "none" 的 CSS 显示值。

默认值:true
示例:
// Hides the widget in the view
widget.visible = false;
visibleElements VisibleElementsautocast

显示在微件中的可见元素。此属性提供了打开/关闭微件显示的各个元素的功能。

示例:
// Default values are displayed below
featureTable.visibleElements = {
   header: true,
   menu: true,
   menuItems: {
     clearSelection: true,
     refreshData: true,
     toggleColumns: true,
     selectedRecordsShowAllToggle: true,
     selectedRecordsShowSelectedToggle: true,
     zoomToSelection: true
   },
   selectionColumn: true,
   columnMenus: true
}

方法概述

显示继承的方法 隐藏继承的方法
名称 返回类型 描述 类:
String更多详情

用于为微件的 class 属性构建值的实用程序方法。

更多详情Widget
更多详情

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

更多详情FeatureTable
更多详情

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

更多详情FeatureTable
更多详情

清除表中的当前选择过滤器。

更多详情FeatureTable
更多详情

取消选择表中的指定行。

更多详情FeatureTable
更多详情

销毁微件实例。

更多详情Widget
Boolean更多详情

在实例上发出事件。

更多详情Widget
更多详情

按当前选择过滤表。

更多详情FeatureTable
FieldColumn更多详情

在要素表中查找指定的列。

更多详情FeatureTable
Boolean更多详情

指示实例上是否存在与提供的事件名称匹配的事件侦听器。

更多详情Widget
更多详情

在要素表中隐藏指定的列。

更多详情FeatureTable
Boolean更多详情

isFulfilled() 可用于验证是否满足类的创建实例(已解决或已拒绝)。

更多详情Widget
Boolean更多详情

isRejected() 可用于验证创建类的实例是否被拒绝。

更多详情Widget
Boolean更多详情

isResolved() 可用于验证是否解析了类的创建实例。

更多详情Widget
Object更多详情

在实例上注册事件处理程序。

更多详情Widget
更多详情

微件拆解助手。

更多详情Widget
更多详情

此方法主要由开发人员在实现自定义微件时使用。

更多详情Widget
更多详情

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

更多详情FeatureTable
Object更多详情

此方法主要由开发人员在实现自定义微件时使用。

更多详情Widget
更多详情

立即将微件渲染给 DOM。

更多详情Widget
更多详情

此方法主要由开发人员在实现自定义微件时使用。

更多详情Widget
更多详情

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

更多详情FeatureTable
更多详情

选择表中的指定行。

更多详情FeatureTable
更多详情

显示表中的所有列。

更多详情FeatureTable
更多详情

显示要素表中的指定列。

更多详情FeatureTable
更多详情

按升序 (“asc”) 或降序 (“desc”) 对列进行排序。

更多详情FeatureTable
Promise更多详情

when() 可以在创建类的实例后利用。

更多详情Widget
更多详情

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

更多详情FeatureTable

方法详细信息

classes(classNames){String}inherited

用于为微件的 class 属性构建值的实用程序方法。这有助于简化 CSS 类设置。

参数:
repeatable

类名称

返回:
类型 说明
String 计算的类名。
另请参阅:
示例:
// .tsx syntax showing how to set CSS classes while rendering the widget

render() {
  const dynamicIconClasses = {
    [CSS.myIcon]: this.showIcon,
    [CSS.greyIcon]: !this.showIcon
  };

  return (
    <div class={classes(CSS.root, CSS.mixin, dynamicIconClasses)} />
  );
}
clearHighlights()
起始版本:GeoScene API for JavaScript 4.16

这将清除所有突出显示的要素。请注意,不会取消选择关联的行。

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

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

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

清除表中的当前选择过滤器。

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

取消选择表中的指定行。

参数:

要在要素表中取消选择的选择参数。

另请参阅:
destroy()inherited

销毁微件实例。

emit(type, event){Boolean}inherited

在实例上发出事件。仅当创建此类的子类时,才应使用此方法。

参数:
type String

事件的名称。

event Object
optional

事件负载。

返回:
类型 说明
Boolean true 如果听取了侦听者的通知
filterBySelection()
起始版本:GeoScene API for JavaScript 4.16

按当前选择过滤表。

另请参阅:
findColumn(fieldName){FieldColumn}
起始版本:GeoScene API for JavaScript 4.16

在要素表中查找指定的列。

参数:
fieldName String

要查找的列的 fieldName

返回:
类型 说明
FieldColumn 表中返回的
hasEventListener(type){Boolean}inherited

指示实例上是否存在与提供的事件名称匹配的事件侦听器。

参数:
type String

事件的名称。

返回:
类型 说明
Boolean 如果类支持输入事件,则返回 true。
hideColumn(fieldName)
起始版本:GeoScene API for JavaScript 4.16

在要素表中隐藏指定的列。

参数:
fieldName String

要隐藏的列的 fieldName

isFulfilled(){Boolean}inherited
起始版本:GeoScene API for JavaScript 4.19

isFulfilled() 可用于验证是否满足类的创建实例(已解决或已拒绝)。如果已完成,将返回 true

返回:
类型 说明
Boolean 指示是否已完成创建类的实例(已解决或已拒绝)。
isRejected(){Boolean}inherited
起始版本:GeoScene API for JavaScript 4.19

isRejected() 可用于验证创建类的实例是否被拒绝。如果被拒绝,将返回 true

返回:
类型 说明
Boolean 指示创建类的实例是否已被拒绝。
isResolved(){Boolean}inherited
起始版本:GeoScene API for JavaScript 4.19

isResolved() 可用于验证是否解析了类的创建实例。如果被解析,将返回 true

返回:
类型 说明
Boolean 指示是否已解析创建类的实例。
on(type, listener){Object}inherited

在实例上注册事件处理程序。调用此方法将事件与侦听器挂钩。

参数:

要侦听的事件或事件数组。

listener Function

事件激发时要调用的函数。

返回:
类型 说明
Object 返回具有 remove() 方法的事件处理程序,应调用该方法以停止侦听事件。
属性 类型 说明
remove 函数 调用时,从事件中删除侦听器。
示例:
view.on("click", function(event){
  // event is the event handle returned after the event fires.
  console.log(event.mapPoint);
});
own(handles)inherited

微件拆解助手。当微件被销毁时,添加到其中的任何句柄都将自动删除。

参数:

在微件被销毁后标记为删除的句柄。

postInitialize()inherited

此方法主要由开发人员在实现自定义微件时使用。在微件准备好进行渲染后执行。

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

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

render(){Object}inherited

此方法主要由开发人员在实现自定义微件时使用。它必须由子类实现以进行渲染。

返回:
类型 说明
Object 渲染的虚拟节点。
renderNow()inherited

立即将微件渲染给 DOM。

scheduleRender()inherited

此方法主要由开发人员在实现自定义微件时使用。计划微件渲染。此方法对于影响 UI 的更改很有用。

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

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

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

选择表中的指定行。

参数:

要在要素表中选择的选择参数。

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

显示表中的所有列。

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

显示要素表中的指定列。

参数:
fieldName String

要显示的列的 fieldName

sortColumn(path, direction)
起始版本:GeoScene API for JavaScript 4.16

按升序 (“asc”) 或降序 (“desc”) 对列进行排序。

参数:
path String

要排序的指定字段名。

direction String

排序的方向。

可能的值"asc"|"desc"

另请参阅:
when(callback, errback){Promise}inherited
起始版本:GeoScene API for JavaScript 4.19

when() 可以在创建类的实例后利用。此方法采用两个输入参数:callback 函数和 errback 函数。在类的实例加载时执行 callback。如果类的实例无法加载,则执行 errback

参数:
callback Function
optional

解析 promise 时要调用的函数。

errback Function
optional

promise 失败时要执行的函数。

返回:
类型 说明
Promise 返回回调结果的新 promise,callback 结果可用于链接其他函数。
示例:
// Although this example uses the BasemapGallery widget, any class instance that is a promise may use when() in the same way
let bmGallery = new BasemapGallery();
bmGallery.when(function(){
  // This function will execute once the promise is resolved
}, function(error){
  // This function will execute if the promise is rejected due to an error
});
zoomToSelection()
起始版本:GeoScene API for JavaScript 4.23

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

另请参阅:

类型定义

ButtonMenuConfig

通过 menuConfig 属性自定义要素表或菜单的可配置选项。

属性:
container HTMLElement
optional

包含菜单的 DOM 元素。

iconClass Boolean
optional

将 CSS 类添加到菜单按钮的 DOM 节点。

optional

ButtonMenuItems 的数组。

open Boolean
optional

指示菜单内容是否可见。默认为 false

optional

ButtonMenu 的关联 viewModel。

另请参阅:
ButtonMenuItemConfig

通过 menuConfig 项目属性自定义要素表或列菜单的可配置选项。

属性:
autoCloseMenu Boolean
optional

指示是否自动关闭菜单项。

optional

在 ButtonMenuItem 的 click 事件上执行的函数。

iconClass String
optional

将 CSS 类添加到菜单按钮的 DOM 节点。

optional

单个菜单项的数组。

label String
optional

菜单项的标注。这可以与 iconClass 属性结合使用。

open Boolean
optional

指示菜单内容是否可见。

selectionEnabled Boolean
optional

指示是否应将切换状态应用于各个菜单项。

selected Boolean
optional

指示是否选择了菜单项。

另请参阅:
VisibleElements

显示在微件中的可见元素。这提供了打开/关闭微件显示的各个元素的能力。

属性:
header Boolean
optional

指示是否显示要素表的标题信息。默认值为 true

menu Boolean
optional

指示是否显示要素表的菜单。默认值为 true。默认值为 true

selectionColumn Boolean
optional

指示是否在表中显示选择列。每行都有一个复选框,用于选择其相应的要素。默认值为 true

columnMenus Boolean
optional

(自 4.23 起)指示是否在各个列中显示菜单项。默认值为 true

menuItems Object
optional

要素表菜单中的菜单项。

规范:
clearSelection Boolean
optional

指示是否显示 Clear selection 菜单项。默认值为 true

refreshData Boolean
optional

指示是否显示 Refresh data 菜单项。默认值为 true

selectedRecordsShowAllToggle Boolean
optional

_(自4.23起)指示是否从仅显示表中的选定记录切换到显示所有记录。默认值为 true

showSelectedToggle Boolean
optional

(自 4.23 起)指示是否显示 Show selected records 菜单项。默认值为 true仅当在表中选择了记录时,才会显示此选项

toggleColumns toggleColumns
optional

指示是否在菜单中启用切换列可见性。默认值为 true

zoomToSelection zoomToSelection
optional

(自 4.23 起)指示是否显示 Zoom to selected 菜单项。默认值为 true

事件概述

名称 类型 描述 类:
{added: Object[],added.feature: Graphic,added.attachments: AttachmentInfo[],added.relatedRecords: Graphic[],removed: Object[],removed.feature: Graphic,removed.attachments: AttachmentInfo[],removed.relatedRecords: Graphic[]}
更多详情

在 FeatureTable 中添加和/或删除行选择时激发。

更多详情 FeatureTable

事件详细信息

selection-change

在 FeatureTable 中添加和/或删除行选择时激发。

属性:
added Object[]

包含添加到表选择中的行(要素)数据的对象数组。

规范:
feature Graphic

添加到要素表选择中的关联行(要素)。

attachments AttachmentInfo[]

如果适用,则将与添加到要素表选择中的行(要素)关联的 AttachmentInfo 数组。

relatedRecords Graphic[]

(当前未实现)。如果适用,则将与行(要素)关联的相关要素数组添加到要素表选择中。

removed Object[]

包含表选择中移除的行(要素)数据的对象数组。

规范:
feature Graphic

从要素表选择中移除的关联行(要素)。

attachments AttachmentInfo[]

如果适用,则为与从要素表选择中移除的行(要素)关联的 AttachmentInfo 数组。

relatedRecords Graphic[]

(当前未实现)。如果适用,则从要素表选择中移除与行(要素)关联的相关要素数组。

另请参阅:
示例:
// This function will fire each time a row (feature) is either added
// or removed from the feature table's selection
featureTable.on("selection-change", (event) => {
  let addedRows = event.added; // An array of features added to the selection
  let removedRows = event.removed;  // An array of features removed from the selection
});

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