FieldColumnConfig

AMD: require(["esri/widgets/FeatureTable/FieldColumnConfig"], (FieldColumnConfig) => { /* code goes here */ });
ESM: import FieldColumnConfig from "@arcgis/core/widgets/FeatureTable/FieldColumnConfig.js";
Class: esri/widgets/FeatureTable/FieldColumnConfig
Inheritance: FieldColumnConfig FieldConfig Accessor
Since: ArcGIS Maps SDK for JavaScript 4.15
Deprecated since version 4.24. Use FieldColumnTemplate via the FeatureTable's tableTemplate.

The configuration options for displaying an individual field within the FeatureTable widget.

Below are some things to consider when enabling/disabling editing in a field configuration.

Editing permissions can be broken down with the following levels of priority:

  1. Field - This is derived from the FeatureLayer or SceneLayer. 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 configuration.
  2. Config - The editable permissions on a field can be configured by setting the editable property of the FieldColumnConfig.
  3. 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 in the widget, i.e. enableEditing is not set, it is still possible to enable editing for a specific column by setting the editable property. Vice versa is also true, 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 one of the options above.

See also
Example
// Shows how field column configs can be set to control editing
// within a table
const table = new FeatureTable({
  editingEnabled: true, //enables editing on the entire table (if service allows it)
  layer: featureLayer,
  container: document.getElementById("table"),
  fieldConfigs: [{  // autocasts to FieldColumnConfig
    name: "NAME",
    label: name,
    direction: "asc",
  },
  {
  name: "ADDRESS",
  label: address,
  editable: false, // disables editing for the ADDRESS field
  required: true
}]
});

Constructors

new FieldColumnConfig(properties)
Parameter
properties Object
optional

See the properties for a list of all the properties that may be passed into the constructor.

Example
// Typical usage for FieldColumnConfig.
const fieldConfig1 = new FieldColumnConfig({
  name: "FID",
  label: "ID",
  // This field will not be initially shown within the table
  visible: false
 });

const fieldConfig2 = new FieldColumnConfig({
  name: "NAME",
  label: "School Name",
  // The table will be sorted by this column
  // in ascending order
  direction: "asc"
});

// Apply field configs to feature table
const featureTable = new FeatureTable({
  layer: featureLayer,
  fieldConfigs: [fieldConfig1, fieldConfig2],
  container: "tableDiv"
});

Property Overview

Any properties can be set, retrieved or listened to. See the Working with Properties topic.
Show inherited properties Hide inherited properties
Name Type Summary Class
String

The name of the class.

more details
Accessor
String

The field's description.

more details
FieldConfig
String|null

Controls the sort order of the column.

more details
FieldColumnConfig
Boolean

Indicates whether the field can be edited.

more details
FieldConfig
Boolean

Indicates whether date fields should display input for editing time.

more details
FieldConfig
Number

Use this in combination with FeatureTable.multiSortEnabled and FeatureTable.direction properties to set sorting functionality on multiple columns.

more details
FieldColumnConfig
String

The field's label.

more details
FieldConfig
Number

Restricts the input length.

more details
FieldConfig
ButtonMenuConfig

Set this object to customize the field column's menu content.

more details
FieldColumnConfig
Number

Restricts the input length.

more details
FieldConfig
String

The field name.

more details
FieldConfig
Boolean

Indicates whether the field is required.

more details
FieldConfig
String

A reference to the name of an Arcade expression defined in the expressionInfos of the FeatureForm.

more details
FieldConfig
Boolean

Indicates whether the field column can be sorted.

more details
FieldColumnConfig
String

Aligns the columns cell content horizontally.

more details
textAlign
Boolean

Indicates whether the field column is visible.

more details
FieldColumnConfig

Property Details

declaredClass Stringreadonly inherited

The name of the class. The declared class name is formatted as esri.folder.className.

description String inherited

The field's description. The description is shown below the field.

direction String|null

Controls the sort order of the column. This property will only be honored on one column in the FeatureTable widget. If direction is specified on more than one fieldColumn in the same FeatureTable, it will only be honored on the column with the highest index. For example, let's say the first column called ObjectId is set to asc and another column later in the table order also has a set direction, the initial ObjectId column's direction will be ignored for the last one with the set direction.

Possible Value Description
asc Sorts the column in ascending order.
desc Sorts the column in descending order.
null No sort is applied to the column.

Possible Values:"asc"|"desc"

See also
editable Boolean inherited

Indicates whether the field can be edited.

This does not change the underlying service's field and whether it can be edited.

Default Value:true
includeTime Boolean inherited
Since: ArcGIS Maps SDK for JavaScript 4.17

Indicates whether date fields should display input for editing time.

Default Value:true
initialSortPriority Number
Since: ArcGIS Maps SDK for JavaScript 4.23

Use this in combination with FeatureTable.multiSortEnabled and FeatureTable.direction properties to set sorting functionality on multiple columns. This property indicates the index of the sorted column when compared to other columns, with lower numbers taking a higher priority.

If no sort priority is set, the priority defaults to the most recently-sorted column. This occurs when sorting via the UI, or programmatically by calling FeatureTable.sortColumn. For example, using the example snippet below, the sort order priority is set for three columns, with "Status" having the least priority. Calling table.sortColumn("Status", "asc") would update the Status column to the highest priority. This would also occur if manually sorting via the column's UI.

Default Value:null
See also
Example
const table = 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"
});

The field's label. The label is shown above the field.

maxLength Number inherited

Restricts the input length.

This only applies to numeric and text field types.

Default Value:-1
Since: ArcGIS Maps SDK for JavaScript 4.16

Set this object to customize the field column's menu content.

See also
minLength Number inherited
Since: ArcGIS Maps SDK for JavaScript 4.16

Restricts the input length.

This only applies to numeric and text field types.

Default Value:-1

The field name.

required Boolean inherited

Indicates whether the field is required.

This cannot change the underlying service's field requirements.

Default Value:false
requiredExpression String inherited
Since: ArcGIS Maps SDK for JavaScript 4.16

A reference to the name of an Arcade expression defined in the expressionInfos of the FeatureForm. The expression must follow the specification defined by the Constraint Arcade Profile. Expressions may reference field values using the $feature profile variable and must return either true or false.

When this expression evaluates to true and the element is visible, the element must have a valid value in order for the feature to be created or edited. When the expression evaluates to false the element is not required. If no expression is provided, the default behavior is that the element is not required. If the referenced field is non-nullable, the required expression is ignored and the element is always required.

See also
sortable Boolean
Since: ArcGIS Maps SDK for JavaScript 4.16

Indicates whether the field column can be sorted.

Default Value:true
textAlign Stringinner

Aligns the columns cell content horizontally. Supported values: "start" | "center" | "end".

Possible Values:"start"|"center"|"end"

Default Value:start
visible Boolean

Indicates whether the field column is visible.

Default Value:true

Method Overview

Show inherited methods Hide inherited methods
Name Return Type Summary Class

Adds one or more handles which are to be tied to the lifecycle of the object.

more details
Accessor
Boolean

Returns true if a named group of handles exist.

more details
Accessor

Removes a group of handles owned by the object.

more details
Accessor

Method Details

addHandles(handleOrHandles, groupKey)inherited
Since: 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();
Parameters
handleOrHandles WatchHandle|WatchHandle[]

Handles marked for removal once the object is destroyed.

groupKey *
optional

Key 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.

hasHandles(groupKey){Boolean}inherited
Since: ArcGIS Maps SDK for JavaScript 4.25

Returns true if a named group of handles exist.

Parameter
groupKey *
optional

A group key.

Returns
Type 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");
}
removeHandles(groupKey)inherited
Since: ArcGIS Maps SDK for JavaScript 4.25

Removes a group of handles owned by the object.

Parameter
groupKey *
optional

A group key or an array or collection of group keys to remove.

Example
obj.removeHandles(); // removes handles from default group

obj.removeHandles("handle-group");
obj.removeHandles("other-handle-group");

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.