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:
- 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. - Config - The editable permissions on a field can be configured by setting the editable property of the FieldColumnConfig.
- 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:
// 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 Objectoptional
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
Name | Type | Summary | Class | |
---|---|---|---|---|
String | more details The name of the class. | more details | Accessor | |
String | more details The field's description. | more details | FieldConfig | |
String|null | more details Controls the sort order of the column. | more details | FieldColumnConfig | |
Boolean | more details Indicates whether the field can be edited. | more details | FieldConfig | |
Boolean | more details Indicates whether date fields should display input for editing time. | more details | FieldConfig | |
Number | more details Use this in combination with FeatureTable.multiSortEnabled and FeatureTable.direction properties to set sorting functionality on multiple columns. | more details | FieldColumnConfig | |
String | more details The field's label. | more details | FieldConfig | |
Number | more details Restricts the input length. | more details | FieldConfig | |
ButtonMenuConfig | more details Set this object to customize the field column's menu content. | more details | FieldColumnConfig | |
Number | more details Restricts the input length. | more details | FieldConfig | |
String | more details The field name. | more details | FieldConfig | |
Boolean | more details Indicates whether the field is required. | more details | FieldConfig | |
String | more details A reference to the name of an Arcade expression defined in the expressionInfos of the FeatureForm. | more details | FieldConfig | |
Boolean | more details Indicates whether the field column can be sorted. | more details | FieldColumnConfig | |
String | more details Aligns the columns cell content horizontally. | more details | textAlign | |
Boolean | more details Indicates whether the field column is visible. | more details | FieldColumnConfig |
Property Details
-
The name of the class. The declared class name is formatted as
esri.folder.className
.
-
The field's description. The description is shown below the field.
-
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 toasc
and another column later in the table order also has a set direction, the initialObjectId
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"
-
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
-
Since: ArcGIS API for JavaScript 4.17
-
Indicates whether date fields should display input for editing time.
- Default Value:true
-
initialSortPriority NumberSince: ArcGIS API 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 theStatus
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.
-
Restricts the input length.
This only applies to
numeric
andtext
field types.- Default Value:-1
-
Since: ArcGIS API for JavaScript 4.16
-
Set this object to customize the field column's menu content.
- See also:
-
Since: ArcGIS API for JavaScript 4.16
-
Restricts the input length.
This only applies to
numeric
andtext
field types.- Default Value:-1
-
The field name.
-
Indicates whether the field is required.
This cannot change the underlying service's field requirements.
- Default Value:false
-
Since: ArcGIS API 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
global variable and must return eithertrue
orfalse
.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 tofalse
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 BooleanSince: ArcGIS API 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