用于在 FeatureTable 微件中显示单个字段的配置选项。
以下是在字段配置中启用/禁用编辑时要考虑的一些事项。
编辑权限可以按以下优先级进行细分:
- Field - 这派生自 FeatureLayer 或 SceneLayer。它采用在 Field.editable 属性中设置的内容。要启用编辑,这必须始终为
true
。可以使用字段列配置覆盖此内容。 - Config - 可以通过设置 FieldColumnConfig 的 editable 属性来配置字段的可编辑权限。
- FeatureTable - 必须在表上设置 editingEnabled 属性,才能启用任何类型的编辑。
例如,如果在微件中禁用了表编辑,即不设置 enableEditing
,仍可通过设置 editable 属性来启用对特定列的编辑。反之亦然,如果启用了表编辑,则可使用字段配置来禁用对特定列的编辑。
如果服务的字段不可编辑,则无法使用上述选项之一覆盖其权限。
- 另请参阅
// 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
}]
});
构造函数
-
new FieldColumnConfig(properties)
-
参数properties Objectoptional
有关可能传递给构造函数的所有属性的列表,请参见属性。
示例// 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" });
属性概述
名称 | 类型 | 描述 | 类 |
---|---|---|---|
String | 类的名称。 更多详情 | Accessor | |
String | 字段的说明。 更多详情 | FieldConfig | |
String|null | 控制列的排序顺序。 更多详情 | FieldColumnConfig | |
Boolean | 指示是否可以编辑字段。 更多详情 | FieldConfig | |
Boolean | 指示日期字段是否应显示编辑时间的输入。 更多详情 | FieldConfig | |
Number | 将其与 FeatureTable.multiSortEnabled 和 FeatureTable.direction 属性结合使用,以设置对多个列的排序功能。 更多详情 | FieldColumnConfig | |
String | 字段的标注。 更多详情 | FieldConfig | |
Number | 限制输入长度。 更多详情 | FieldConfig | |
ButtonMenuConfig | 设置此对象可自定义字段列的菜单内容。 更多详情 | FieldColumnConfig | |
Number | 限制输入长度。 更多详情 | FieldConfig | |
String | 字段名称。 更多详情 | FieldConfig | |
Boolean | 指示该字段是否为必填字段。 更多详情 | FieldConfig | |
String | 对在 FeatureForm 的 expressionInfos 中定义的 Arcade 表达式 表达式的名称的引用。 更多详情 | FieldConfig | |
Boolean | 指示是否可以对字段列进行排序。 更多详情 | FieldColumnConfig | |
String | 水平对齐列单元格内容。 更多详情 | textAlign | |
Boolean | 指示字段列是否可见。 更多详情 | FieldColumnConfig |
属性详细信息
-
类的名称。声明的类名称格式化为
geoscene.folder.className
。
-
字段的说明。说明显示在字段下方。
-
控制列的排序顺序。此属性将仅在 FeatureTable 微件中的一列上使用。如果在同一 FeatureTable 中的多个 fieldColumn 上指定了方向,则仅会在最大索引的列上执行。例如,假设名为
ObjectId
的第一个列设置为asc
,而表顺序后面的另一列也具有设置方向,则对于具有设置方向的最后一列,初始ObjectId
列的方向将被忽略。可能值 描述 asc 按升序对列进行排序。 desc 按降序对列进行排序。 null 不会对列应用任何排序。 可能值:"asc"|"desc"
-
指示是否可以编辑字段。
这不会更改基础服务的字段以及是否可以编辑它。
- 默认值:true
-
起始版本:GeoScene Maps SDK for JavaScript 4.17
-
指示日期字段是否应显示编辑时间的输入。
- 默认值:true
-
initialSortPriority Number起始版本:GeoScene Maps SDK for JavaScript 4.23
-
将其与 FeatureTable.multiSortEnabled 和 FeatureTable.direction 属性结合使用,以设置对多个列的排序功能。与其他列相比,此属性指示排序列的索引,数字越小,优先级越高。
如果未设置排序优先级,则优先级默认为最近排序的列。在通过 UI 进行排序时,或通过调用 FeatureTable.sortColumn 以编程方式排序时,会发生这种情况。例如,使用下面的示例代码段,针对三列设置了排序优先级,其中 "Status” 具有最小优先级。调用
table.sortColumn("Status", "asc")
会将Status
列更新为最高优先级。如果通过列 UI 手动排序,也会发生这种情况。- 默认值:null
- 另请参阅
示例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" });
-
字段的标注。标注显示在字段上方。
-
限制输入长度。
这仅适用于
numeric
和text
字段类型。- 默认值:-1
-
起始版本:GeoScene Maps SDK for JavaScript 4.16
-
设置此对象可自定义字段列的菜单内容。
-
起始版本:GeoScene Maps SDK for JavaScript 4.16
-
限制输入长度。
这仅适用于
numeric
和text
字段类型。- 默认值:-1
-
字段名称。
-
指示该字段是否为必填字段。
这无法更改基础服务的字段要求。
- 默认值:false
-
起始版本:GeoScene Maps SDK for JavaScript 4.16
-
对在 FeatureForm 的 expressionInfos 中定义的 Arcade 表达式 表达式的名称的引用。表达式必须遵循约束 Arcade 配置文件定义的规范。表达式可以使用
$feature
配置变量来引用字段值,并且必须返回true
或false
。当此表达式的计算结果为
true
并且元素可见时,元素必须具有有效值才能创建或编辑要素。当表达式的计算结果为false
时,不需要该元素。如果未提供表达式,则默认行为是不需要该元素。如果引用的字段不可为空,则忽略所需的表达式并且始终需要该元素。- 另请参阅
-
sortable Boolean起始版本:GeoScene Maps SDK for JavaScript 4.16
-
指示是否可以对字段列进行排序。
- 默认值:true
-
textAlign Stringinner
-
水平对齐列单元格内容。支持的值:"start" | "center" | "end".
可能值:"start"|"center"|"end"
- 默认值:start
-
visible Boolean
-
指示字段列是否可见。
- 默认值:true
方法概述
名称 | 返回值类值 | 描述 | 类 |
---|---|---|---|
添加一个或多个与对象的生命周期相关联的句柄。 更多详情 | Accessor | ||
Boolean | 如果存在指定的句柄组,则返回 true。 更多详情 | Accessor | |
移除对象拥有的句柄组。 更多详情 | Accessor |
方法详细说明
-
addHandles(handleOrHandles, groupKey)inherited起始版本:GeoScene Maps SDK for JavaScript 4.25
-
添加一个或多个与对象的生命周期相关联的句柄。当对象被销毁时,将移除句柄。
// Manually manage handles const handle = reactiveUtils.when( () => !view.updating, () => { wkidSelect.disabled = false; }, { once: true } ); // Handle gets removed when the object is destroyed. this.addHandles(handle);
参数handleOrHandles WatchHandle|WatchHandle[]对象销毁后,标记为要移除的句柄。
groupKey *optional标识句柄应添加到的组的键。组中的所有句柄稍后都可使用 Accessor.removeHandles() 进行删除。如果未提供键,则句柄将被添加到默认组。
-
起始版本:GeoScene Maps SDK for JavaScript 4.25
-
如果存在指定的句柄组,则返回 true。
参数groupKey *optional组键。
返回类型 描述 Boolean 如果存在指定的句柄组,则返回 true
。示例// Remove a named group of handles if they exist. if (obj.hasHandles("watch-view-updates")) { obj.removeHandles("watch-view-updates"); }
-
removeHandles(groupKey)inherited起始版本:GeoScene Maps SDK for JavaScript 4.25
-
移除对象拥有的句柄组。
参数groupKey *optional要移除的组键或组键的数组或集合。
示例obj.removeHandles(); // removes handles from default group obj.removeHandles("handle-group"); obj.removeHandles("other-handle-group");