This widget provides an interactive tabular view of each feature's attributes in a feature layer. In addition, it also works with standalone tables that are not associated with underlying geometries. When working with a large dataset, the table loads additional features as the user scrolls.
Known Limitations
- Number and date formatting is not yet supported but will be added in a future release.
- Viewing and editing related records is currently not supported. If this functionality is needed, please use the Editor widget. This functionality is planned for a future release.
- Viewing attachments directly within the table's cell is not supported, although if a feature contains attachments, the total count per feature will display.
- SceneLayers are only supported if they have an associated FeatureLayer.
The following image displays the standalone FeatureTable
widget
without any associated map.
The following image displays the FeatureTable
widget with an associated map.
- See also
Constructors
-
new FeatureTable(properties)
-
Parameterproperties Objectoptional
See the properties for a list of all the properties that may be passed into the constructor.
Example// Typical usage for the 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" });
Property Overview
Name | Type | Summary | Class |
---|---|---|---|
Collection<(GeometryFilter|SelectionFilter)> | A read-only property indicating the type of filter used by the table. more details | FeatureTable | |
ColumnSortOrder[] | Use this read-only property if needing to query features while retaining a column's sort order. more details | FeatureTable | |
Boolean | Indicates whether to display the | FeatureTable | |
Boolean | Automatically refreshes the table when its associated layer has been updated. more details | FeatureTable | |
Boolean | When | FeatureTable | |
Collection<(FieldColumn|GroupColumn)> | A read-only collection of field columns and/or grouped field columns within the table. more details | FeatureTable | |
String|HTMLElement | The ID or node representing the DOM element containing the widget. more details | Widget | |
String | The name of the class. more details | Accessor | |
Boolean | Indicates whether editing is enabled on the data within the feature table. more details | FeatureTable | |
FieldColumnConfig[] | An array of individual field configuration objects. more details | FeatureTable | |
Geometry | Set this property to filter the features displayed in the table. more details | FeatureTable | |
Collection<string> | A collection of string field.names that are to remain hidden within the table. more details | FeatureTable | |
Boolean | Indicates whether to highlight the associated feature when a row is selected. more details | FeatureTable | |
Collection<number> | This property accepts and returns a collection of feature ObjectId's. more details | FeatureTable | |
Boolean | Indicates whether to highlight the associated feature when a row is selected. more details | FeatureTable | |
String | The unique ID assigned to the widget when the widget is created. more details | Widget | |
String | The widget's default label. more details | FeatureTable | |
FeatureLayer|SceneLayer|GeoJSONLayer|CSVLayer|WFSLayer|ImageryLayer | The associated FeatureLayer, SceneLayer, GeoJSONLayer, CSVLayer, ImageryLayer, or WFSLayer containing the fields and attributes to display within the widget. more details | FeatureTable | |
ButtonMenu | Reference to the FeatureTable's menu. more details | FeatureTable | |
ButtonMenuConfig | Set this object to customize the feature table's menu content. more details | FeatureTable | |
Boolean | Indicates whether sorting multiple columns is supported within the table. more details | FeatureTable | |
Number | The default page size used when displaying features within the table. more details | FeatureTable | |
Boolean | Indicates whether to fetch geometries for the corresponding features displayed in the table. more details | FeatureTable | |
String | The state of the widget. more details | FeatureTable | |
TableTemplate | The associated template used for the feature table. more details | FeatureTable | |
MapView|SceneView | A reference to the MapView or SceneView. more details | FeatureTable | |
FeatureTableViewModel | The view model for this widget. more details | FeatureTable | |
Boolean | Indicates whether the widget is visible. more details | Widget | |
VisibleElements | The visible elements that are displayed within the widget. more details | FeatureTable |
Property Details
-
activeFilters Collection<(GeometryFilter|SelectionFilter)>readonly
-
A read-only property indicating the type of filter used by the table. It returns either filters by geometry or selections using a row's ObjectId.
- See also
-
activeSortOrders ColumnSortOrder[]readonlySince: ArcGIS Maps SDK for JavaScript 4.25
-
Use this read-only property if needing to query features while retaining a column's sort order. It returns an array of ColumnSortOrder. This contains a column's name and its sort direction. The sort priority is honored in the returned ColumnSortOrder if multiSortEnabled is
true
with a set initialSortPriority.- Default Value:[]
-
attachmentsEnabled Boolean
-
Indicates whether to display the
Attachments
field in the table. This is only applicable if the feature layer supports attachments. Currently, this field only displays the count of attachments per feature.- Default Value:false
-
autoRefreshEnabled BooleanSince: ArcGIS Maps SDK for JavaScript 4.23
-
Automatically refreshes the table when its associated layer has been updated.
- Default Value:true
-
columnReorderingEnabled BooleanSince: ArcGIS Maps SDK for JavaScript 4.16
-
When
true
, columns can be reordered by dragging a column's header.- Default Value:true
-
-
A read-only collection of field columns and/or grouped field columns within the table.
By default fields such as
CreationDate
,Creator
,EditDate
,Editor
, andGlobalID
do not show. If these fields are needed, set them via TableTemplate.columnTemplates. In this case, it is also required that the column template'svisible
property is set totrue
.- See also
-
-
The ID or node representing the DOM element containing the widget. This property can only be set once. The following examples are all valid use cases when working with widgets.
Examples// 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" });
-
The name of the class. The declared class name is formatted as
esri.folder.className
.
-
editingEnabled BooleanSince: ArcGIS Maps SDK for JavaScript 4.16
-
Indicates whether editing is enabled on the data within the feature table. Double-clicking in a cell will enable editing for that value.
Editing permissions can be broken down with the following levels of priority:
- Field - This is derived
from the FeatureLayer. It takes what is set in the Field.editable property. This
must always be
true
for editing to be enabled. This can be overridden using a field column template. - Template - The editable permissions on a field can be configured by setting the editable property of the FieldColumnTemplate.
- FeatureTable - The editingEnabled property must be set on the table in order for any type of editing to be enabled.
For example, if table editing is disabled on the widget, i.e.
enableEditing
is not set, it is still possible to enable editing for a specific column by setting the FieldColumnTemplate.editable property. Vice versa is also true, i.e. if table editing is enabled, a field configuration can be used to disable editing for a specific column.If the service's field is not editable, it is not possible to override its permissions using any of the options above.
- Default Value:false
- See also
- Field - This is derived
from the FeatureLayer. It takes what is set in the Field.editable property. This
must always be
-
fieldConfigs FieldColumnConfig[]autocastDeprecated since version 4.24. Use FieldColumnTemplate via the FeatureTable's tableTemplate.
-
An array of individual field configuration objects. This is where you can specify what fields to display and how you wish to display them.
When not set, all fields except for
CreationDate
,Creator
,EditDate
,Editor
, andGlobalID
will be included. Otherwise, it is up to the developer to set the right field(s) to override and display.- Default Value:All fields except for `CreationDate`, `Creator`, `EditDate`, `Editor`, and `GlobalID`
-
Since: ArcGIS Maps SDK for JavaScript 4.19
-
Set this property to filter the features displayed in the table. It accepts a Geometry, e.g. Extent, and uses it as a spatial filter. When modifying this property, the FeatureTable will completely refresh and re-query for all features.
- See also
Example// Listen for when the view is stationary. // If true, check the view's extent and set // the table to display only the attributes // for the features falling within this extent. reactiveUtils.when( () => view.stationary === true, () => { // Get the new extent of view/map whenever map is updated. if (view.extent) { // Filter out and show only the visible features in the feature table. featureTable.filterGeometry = view.extent; } }, { initial: true });
-
Since: ArcGIS Maps SDK for JavaScript 4.16
-
A collection of string field.names that are to remain hidden within the table. By default fields such as
CreationDate
,Creator
,EditDate
,Editor
, andGlobalID
do not show. If these fields are needed, set them via TableTemplate.columnTemplates. In this case, it is also required that the column template's visible property is set totrue
.- Default Value:true
- See also
Examplesconst featureTable = new FeatureTable({ layer: featureLayer, view: view, hiddenFields: ["Primary_Type", "incident_date"], // will not show these two fields within the table container: document.getElementById("tableDiv") });
// Set this syntax if needing to display a default hidden field, e.g. 'CreationDate` const featureTable = new FeatureTable({ layer: featureLayer, view: view, tableTemplate: { // autocastable to TableTemplate customElements: [ // takes an array of FieldColumnTemplate and GroupColumnTemplate { //autocastable to FieldColumnTemplate type: "field", fieldName: "CreationDate", label: "Date created", visible: true }] } container: document.getElementById("tableDiv") });
-
highlightEnabled BooleanSince: ArcGIS Maps SDK for JavaScript 4.25
-
Indicates whether to highlight the associated feature when a row is selected.
- Default Value:true
-
highlightIds Collection<number>Since: ArcGIS Maps SDK for JavaScript 4.25
-
This property accepts and returns a collection of feature ObjectId's. Use this to access and control which features are currently selected in the table and subsequently highlighted within the map. Once an application sets a collection of ObjectId's, the table will select the corresponding row and highlight its feature within the map.
- See also
Example// This example instantiates the table with highlighted features const featureTable = new FeatureTable({ view: view, layer: featureLayer, container: "tableDiv", highlightIds }); // Push the object ids into a collection and select featureTable.highlightIds.push(2, 3, 4); // Listen for changes in the collection of highlighted features featureTable.highlightIds.on("change", (event) => { console.log("features selected", event.added); console.log("features deselected", event.removed); });
-
highlightOnRowSelectEnabled BooleanSince: ArcGIS Maps SDK for JavaScript 4.16Deprecated since version 4.25. Use highlightEnabled instead.
-
Indicates whether to highlight the associated feature when a row is selected.
- Default Value:true
-
The unique ID assigned to the widget when the widget is created. If not set by the developer, it will default to the container ID, or if that is not present then it will be automatically generated.
-
label String
-
The widget's default label.
-
The associated FeatureLayer, SceneLayer, GeoJSONLayer, CSVLayer, ImageryLayer, or WFSLayer containing the fields and attributes to display within the widget. The table's pagination defaults to
50
records at a time. If the layer contains less than 50 records, it will use whatever count it has. Note that 0 records do not apply.- Support for GeoJSONLayer, CSVLayer, ImageryLayer, and WFSLayer was added at version 4.21.
- For an ImageryLayer to work with FeatureTable, it must have a mosaic dataset. Currently,
Map
andFeatureTable
interaction withImageryLayers
are not supported.
- See also
-
Since: ArcGIS Maps SDK for JavaScript 4.19
-
Reference to the FeatureTable's menu.
The menu's items are regenerated when a column's visibility changes. Use the FeatureTable's menuConfig and menuConfig.items to customize menu items. These options are recommended, rather than updating The table's
items
directly off of itsmenu
. This helps ensure the menu always shows the correct items.- See also
-
Since: ArcGIS Maps SDK for JavaScript 4.16
-
Set this object to customize the feature table's menu content.
-
multiSortEnabled BooleanSince: ArcGIS Maps SDK for JavaScript 4.23
-
Indicates whether sorting multiple columns is supported within the table. Use this in combination with the FieldColumnTemplate.initialSortPriority and FieldColumnTemplate.direction properties to set sorting functionality for multiple columns.
- Default Value:false
- See also
Exampleconst featureTableVM = new FeatureTableViewModel({ layer: featureLayer, multiSortEnabled: true, tableTemplate: { // autocasts to TableTemplate columnTemplates: [ // takes an array of FieldColumnTemplate and GroupColumnTemplate { // autocasts to FieldColumnTemplate type: "field", fieldName: "ObjectId", direction: "asc", // In order to use initialSortPriority, make sure direction is set initialSortPriority: 1, // This field's sort order takes second-highest priority. }, { type: "field", fieldName: "Name", direction: "asc", // In order to use initialSortPriority, make sure direction is set initialSortPriority: 0, // This field's sort order takes the highest priority. }, { type: "field", fieldName: "Status", direction: "asc", // In order to use initialSortPriority, make sure direction is set initialSortPriority: 2 // This field's sort order is prioritized after Name and ObjectId, respectively. }] }, container: "tableDiv" });
-
pageSize NumberSince: ArcGIS Maps SDK for JavaScript 4.19
-
The default page size used when displaying features within the table. By default, the page loads the first 50 features returned by the service.
It is not possible to overwrite the maximum page size on the server, ie.
maxRecordCount
, as this property only applies to set values less than the maximum page size, i.e.maxRecordCount
, set on the service.- Default Value:50
- See also
-
returnGeometryEnabled BooleanSince: ArcGIS Maps SDK for JavaScript 4.27
-
Indicates whether to fetch geometries for the corresponding features displayed in the table. NOTE: Setting this to true can impact performance of the widget.
- Default Value:false
-
state Stringreadonly
-
The state of the widget.
Possible Values:"disabled"|"loading"|"loaded"|"ready"
- Default Value:disabled
-
tableTemplate TableTemplateSince: ArcGIS Maps SDK for JavaScript 4.24
-
The associated template used for the feature table.
The tableTemplate is where you configure how the feature table should display and set any associated properties for the table and its columns.
Exampleconst tableTemplate = new TableTemplate({ columnTemplates: [ // takes an array of FieldColumnTemplate and GroupColumnTemplate { // autocasts to FieldColumnTemplate type: "field", fieldName: "ObjectId", direction: "asc", // In order to use initialSortPriority, make sure direction is set initialSortPriority: 1 // This field's sort order takes the second-highest priority. }, { type: "field", fieldName: "NAME", label: "Name", direction: "asc", // In order to use initialSortPriority, make sure direction is set initialSortPriority: 0 // This field's sort order takes the highest priority }, { type: "field", fieldName: "STATUS", label: "Status", direction: "asc", // In order to use initialSortPriority, make sure direction is set initialSortPriority: 2 // This field's sort order is prioritized after Name and ObjectId, respectively. }] });
-
A reference to the MapView or SceneView. This property must be set for select/highlighting in the map to work.
-
viewModel FeatureTableViewModelautocast
-
The view model for this widget. This is a class that contains all the logic, (ie. properties and methods), that controls the widget's behavior. See the FeatureTableViewModel class to access all properties and methods on the widget.
-
Indicates whether the widget is visible.
If
false
, the widget will no longer be rendered in the web document. This may affect the layout of other elements or widgets in the document. For example, if this widget is the first of three widgets associated to the upper right hand corner of the view UI, then the other widgets will reposition when this widget is made invisible. For more information, refer to the CSS display value of"none"
.- Default Value:true
Example// Hides the widget in the view widget.visible = false;
-
visibleElements VisibleElements
-
The visible elements that are displayed within the widget. This property provides the ability to turn individual elements of the widget's display on/off.
Example// Default values are displayed below featureTable.visibleElements = { header: true, menu: true, menuItems: { clearSelection: true, deleteSelection: true, // Works if the layer supports deletion and editingEnabled property is true refreshData: true, toggleColumns: true, selectedRecordsShowAllToggle: true, selectedRecordsShowSelectedToggle: true, zoomToSelection: true }, selectionColumn: true, columnMenus: true }
Method Overview
Name | Return Type | Summary | Class |
---|---|---|---|
Adds one or more handles which are to be tied to the lifecycle of the object. more details | Accessor | ||
String | A utility method used for building the value for a widget's | Widget | |
This clears any highlighted features. more details | FeatureTable | ||
Clears the current selection within the table. more details | FeatureTable | ||
Clears the current selection filter within the table. more details | FeatureTable | ||
Promise<void> | Deletes all the selected rows from the table. more details | FeatureTable | |
Unselects the specified rows within the table. more details | FeatureTable | ||
Destroys the widget instance. more details | Widget | ||
Boolean | Emits an event on the instance. more details | Widget | |
Filters the table by the current selection. more details | FeatureTable | ||
Column|GroupColumn | Finds the specified column within the feature table. more details | FeatureTable | |
Boolean | Indicates whether there is an event listener on the instance that matches the provided event name. more details | Widget | |
Boolean | Returns true if a named group of handles exist. more details | Accessor | |
Hides the specified column from the feature table. more details | FeatureTable | ||
Boolean |
| Widget | |
Boolean |
| Widget | |
Boolean |
| Widget | |
Object | Registers an event handler on the instance. more details | Widget | |
Adds one or more handles which are to be tied to the lifecycle of the widget. more details | Widget | ||
This method is primarily used by developers when implementing custom widgets. more details | Widget | ||
Promise<void> | Refreshes the table contents while maintaining the current scroll position. more details | FeatureTable | |
Removes a group of handles owned by the object. more details | Accessor | ||
Object | This method is primarily used by developers when implementing custom widgets. more details | Widget | |
Renders widget to the DOM immediately. more details | Widget | ||
This method is primarily used by developers when implementing custom widgets. more details | Widget | ||
Scrolls the table to a row based on a specified index. more details | FeatureTable | ||
Selects the specified rows within the table. more details | FeatureTable | ||
Shows all of the columns in the table. more details | FeatureTable | ||
Shows the specified column within the feature table. more details | FeatureTable | ||
Sorts the column in either ascending ("asc") or descending ("desc") order. more details | FeatureTable | ||
Promise |
| Widget | |
Zooms the view to the extent of the current row selection. more details | FeatureTable |
Method Details
-
addHandles(handleOrHandles, groupKey)inheritedSince: ArcGIS Maps SDK for JavaScript 4.25
-
Adds one or more handles which are to be tied to the lifecycle of the object. The handles will be removed when the object is destroyed.
// Manually manage handles const handle = reactiveUtils.when( () => !view.updating, () => { wkidSelect.disabled = false; }, { once: true } ); this.addHandles(handle); // Destroy the object this.destroy();
ParametershandleOrHandles WatchHandle|WatchHandle[]Handles marked for removal once the object is destroyed.
groupKey *optionalKey identifying the group to which the handles should be added. All the handles in the group can later be removed with Accessor.removeHandles(). If no key is provided the handles are added to a default group.
-
A utility method used for building the value for a widget's
class
property. This aids in simplifying CSS class setup.Parameterrepeatable The class names.
ReturnsType Description String The computed class name. Example// .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()Since: ArcGIS Maps SDK for JavaScript 4.16Deprecated since version 4.25. Use highlightIds.removeAll() instead.
-
This clears any highlighted features. Take note that the associated rows are not deselected.
-
clearSelection()Since: ArcGIS Maps SDK for JavaScript 4.16Deprecated since version 4.25. Use highlightIds.removeAll() instead.
-
Clears the current selection within the table.
-
clearSelectionFilter()Since: ArcGIS Maps SDK for JavaScript 4.23
-
Clears the current selection filter within the table.
-
deleteSelection(showWarningPrompt){Promise<void>}Since: ArcGIS Maps SDK for JavaScript 4.25
-
Deletes all the selected rows from the table.
There must be at least one selected row within the table for this to work. Also, make sure that editingEnabled is set to
true
and the underlying service data supports deletion.ParametershowWarningPrompt BooleanoptionalIndicates whether to display a prompt warning that the selected features will be deleted. Default behavior is to show a warning dialog before proceeding.
ReturnsType Description Promise<void> Resolves when the selection is deleted.
-
deselectRows(params)Since: ArcGIS Maps SDK for JavaScript 4.16Deprecated since 4.25. Use highlightIds.remove() instead.
-
Unselects the specified rows within the table.
ParameterThe selection parameters to deselect within the feature table.
-
destroy()inherited
-
Destroys the widget instance.
-
Emits an event on the instance. This method should only be used when creating subclasses of this class.
Parameterstype StringThe name of the event.
event ObjectoptionalThe event payload.
ReturnsType Description Boolean true
if a listener was notified
-
filterBySelection()Since: ArcGIS Maps SDK for JavaScript 4.16
-
Filters the table by the current selection.
-
findColumn(fieldName){Column|GroupColumn}Since: ArcGIS Maps SDK for JavaScript 4.16
-
Finds the specified column within the feature table.
ParameterfieldName StringThe
fieldName
of the column to find.ReturnsType Description Column | GroupColumn The returned column.
-
Indicates whether there is an event listener on the instance that matches the provided event name.
Parametertype StringThe name of the event.
ReturnsType Description Boolean Returns true if the class supports the input event.
-
Since: ArcGIS Maps SDK for JavaScript 4.25
-
Returns true if a named group of handles exist.
ParametergroupKey *optionalA group key.
ReturnsType Description Boolean Returns true
if a named group of handles exist.Example// Remove a named group of handles if they exist. if (obj.hasHandles("watch-view-updates")) { obj.removeHandles("watch-view-updates"); }
-
hideColumn(fieldName)Since: ArcGIS Maps SDK for JavaScript 4.16
-
Hides the specified column from the feature table.
ParameterfieldName StringThe
fieldName
of the column to hide.
-
Since: ArcGIS Maps SDK for JavaScript 4.19
-
isFulfilled()
may be used to verify if creating an instance of the class is fulfilled (either resolved or rejected). If it is fulfilled,true
will be returned.ReturnsType Description Boolean Indicates whether creating an instance of the class has been fulfilled (either resolved or rejected).
-
Since: ArcGIS Maps SDK for JavaScript 4.19
-
isRejected()
may be used to verify if creating an instance of the class is rejected. If it is rejected,true
will be returned.ReturnsType Description Boolean Indicates whether creating an instance of the class has been rejected.
-
Since: ArcGIS Maps SDK for JavaScript 4.19
-
isResolved()
may be used to verify if creating an instance of the class is resolved. If it is resolved,true
will be returned.ReturnsType Description Boolean Indicates whether creating an instance of the class has been resolved.
-
Registers an event handler on the instance. Call this method to hook an event with a listener.
ParametersAn event or an array of events to listen for.
listener FunctionThe function to call when the event fires.
ReturnsType Description Object Returns an event handler with a remove()
method that should be called to stop listening for the event(s).Property Type Description remove Function When called, removes the listener from the event. Exampleview.on("click", function(event){ // event is the event handle returned after the event fires. console.log(event.mapPoint); });
-
own(handleOrHandles)inheritedSince: ArcGIS Maps SDK for JavaScript 4.24
-
Adds one or more handles which are to be tied to the lifecycle of the widget. The handles will be removed when the widget is destroyed.
const handle = reactiveUtils.when( () => !view.updating, () => { wkidSelect.disabled = false; }, { once: true} ); this.own(handle); // Handle gets removed when the widget is destroyed.
ParameterhandleOrHandles WatchHandle|WatchHandle[]Handles marked for removal once the widget is destroyed.
-
postInitialize()inherited
-
This method is primarily used by developers when implementing custom widgets. Executes after widget is ready for rendering.
-
refresh(){Promise<void>}Since: ArcGIS Maps SDK for JavaScript 4.16
-
Refreshes the table contents while maintaining the current scroll position.
ReturnsType Description Promise<void> Resolves when the table finishes refreshing.
-
removeHandles(groupKey)inheritedSince: ArcGIS Maps SDK for JavaScript 4.25
-
Removes a group of handles owned by the object.
ParametergroupKey *optionalA group key or an array or collection of group keys to remove.
Exampleobj.removeHandles(); // removes handles from default group obj.removeHandles("handle-group"); obj.removeHandles("other-handle-group");
-
This method is primarily used by developers when implementing custom widgets. It must be implemented by subclasses for rendering.
ReturnsType Description Object The rendered virtual node.
-
renderNow()inherited
-
Renders widget to the DOM immediately.
-
scheduleRender()inherited
-
This method is primarily used by developers when implementing custom widgets. Schedules widget rendering. This method is useful for changes affecting the UI.
-
scrollToIndex(index)Since: ArcGIS Maps SDK for JavaScript 4.19
-
Scrolls the table to a row based on a specified index.
Parameterindex NumberIndex of the row in which the table should scroll.
-
selectRows(params)Since: ArcGIS Maps SDK for JavaScript 4.16Deprecated since 4.25. Use highlightIds.add() instead.
-
Selects the specified rows within the table.
ParameterThe selection parameters to select within the feature table.
-
showAllColumns()Since: ArcGIS Maps SDK for JavaScript 4.16
-
Shows all of the columns in the table.
-
showColumn(fieldName)Since: ArcGIS Maps SDK for JavaScript 4.16
-
Shows the specified column within the feature table.
ParameterfieldName StringThe
fieldName
of the column to show.
-
sortColumn(path, direction)Since: ArcGIS Maps SDK for JavaScript 4.16
-
Sorts the column in either ascending ("asc") or descending ("desc") order.
Parameterspath StringThe specified field name to sort.
direction StringThe direction to sort.
Possible Values:"asc"|"desc"
-
Since: ArcGIS Maps SDK for JavaScript 4.19
-
when()
may be leveraged once an instance of the class is created. This method takes two input parameters: acallback
function and anerrback
function. Thecallback
executes when the instance of the class loads. Theerrback
executes if the instance of the class fails to load.Parameterscallback FunctionoptionalThe function to call when the promise resolves.
errback FunctionoptionalThe function to execute when the promise fails.
ReturnsType Description Promise Returns a new promise for the result of callback
.Example// 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()Since: ArcGIS Maps SDK for JavaScript 4.23
-
Zooms the view to the extent of the current row selection. This can also be triggered as a menu item within the table. This item will display if at least one row is selected and the view is set on the
FeatureTable
.
Type Definitions
-
ButtonMenuConfig
-
The configurable options to customize either the feature table or column menu via the menuConfig property.
- Properties
-
container HTMLElement
The DOM Element containing the menu.
iconClass StringAdds a CSS class to the menu button's DOM node.
items ButtonMenuItem[]An array of ButtonMenuItems.
open BooleanIndicates if the menu content is visible. Default is
false
.viewModel ButtonMenuViewModelThe associated viewModel for the ButtonMenu.
- See also
-
ButtonMenuItemConfig
-
The configurable options to customize either the feature table or column menu via the menuConfig item property.
- Properties
-
autoCloseMenu Boolean
Indicates whether to automatically close the menu's item.
clickFunction ButtonMenuItemClickFunctionA function that executes on the ButtonMenuItem's
click
event.iconClass StringAdds a CSS class to the menu button's DOM node.
items ButtonMenuItem[]An array of individual menu items.
label StringThe label of the menu item. This can be used in conjunction with the iconClass property.
open BooleanIndicates if the menu content is visible.
selectionEnabled BooleanIndicates whether a toggled state should be applied to individual menu items.
selected BooleanIndicates whether the menu item is selected.
- See also
-
VisibleElements
-
The visible elements that are displayed within the widget. This provides the ability to turn individual elements of the widget's display on/off.
- Properties
-
header Boolean
Indicates whether to display the feature table's header information. Default value is
true
.menu BooleanIndicates whether to display the feature table's menu. Default value is
true
.selectionColumn BooleanIndicates whether to display the selection column in the table. Each row has a checkbox that selects its corresponding feature. Default value is
true
. If working with a map, make certain to set theFeatureTable.view
property as this enables highlighting the corresponding feature.columnMenus Boolean(Since 4.23) Indicates whether to display the menu items within the individual columns. Default value is
true
.menuItems ObjectThe menu items within the feature table menu.
- Specification
-
clearSelection Boolean
Indicates whether to display the
Clear selection
menu item. Default value istrue
and will display within the menu if any rows are selected.deleteSelection Boolean(Since 4.25) Indicates whether to display the
Delete Selection
menu item. Default value istrue
and will display ifeditingEnabled
istrue
and enabled on the feature service and rows are selected.refreshData BooleanIndicates whether to display the
Refresh data
menu item. Default value istrue
.selectedRecordsShowAllToggle Boolean(Since 4.23) Indicates whether to toggle between showing only selected records in the table to showing all of the records. Default value is
true
.showSelectedToggle Boolean(Since 4.23) Indicates whether to display the
Show selected records
menu item. Default value istrue
and will display within the menu if any rows are selected.toggleColumns toggleColumnsIndicates whether to enable toggling column visibility within the menu. Default value is
true
.zoomToSelection zoomToSelection(Since 4.23) Indicates whether to display the
Zoom to selected
menu item. Default value istrue
and will display within the menu if any rows are selected.
Event Overview
Name | Type | Summary | Class |
---|---|---|---|
{added: Object[],added.feature: Graphic,added.attachments: AttachmentInfo[],added.objectId: Number,added.relatedRecords: Graphic[],removed: Object[],removed.feature: Graphic,removed.attachments: AttachmentInfo[],removed.objectId: Number,removed.relatedRecords: Graphic[]} |
Fires when a row selection is added and/or removed within the FeatureTable. more details |
FeatureTable |
Event Details
-
selection-changeDeprecated since version 4.25. Listen for changes on highlightIds instead.
-
Fires when a row selection is added and/or removed within the FeatureTable. This functionality can also be achieved by listening for changes on the highlightIds collection.
- Properties
-
An array of objects containing row (feature) data added to the table selection.
- Specification
-
feature Graphic
The associated row (feature) added to the feature table selection.
attachments AttachmentInfo[]If applicable, an array of AttachmentInfo associated with the row (feature) added to the feature table selection.
objectId NumberThe objectId associated with the added item.
(Currently not implemented). If applicable, an array of related features associated with the row (feature) added to the feature table selection.
An array of objects containing row (feature) data removed in the table selection.
- Specification
-
feature Graphic
The associated row (feature) removed from the feature table selection.
attachments AttachmentInfo[]If applicable, an array of AttachmentInfo associated with the row (feature) removed from the feature table selection.
objectId NumberThe objectId associated with the removed item.
(Currently not implemented). If applicable, an array of related features associated with the row (feature) removed from the feature table selection.
Example// 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 });