3.5.2.1.4. 批量编辑器

API 文档

BulkEditor - 批量编辑器支持一次修改多个实体对象的属性值。它是个按钮,一般可以加到表格组件, 点击它时打开批量编辑器界面。

gui bulkEdit

该组件对应的 XML 名称: bulkEditor

BulkEditor 只能用在使用了遗留 API的界面中。最新 API 的类似功能通过BulkEditAction提供。

要使用 BulkEditor , 相应的表格或者树组件的 multiselect 属性需设置为 "true"

批量实体编辑界面是基于定义的 view(view 里一般包括实体的字段和引用)、实体动态属性和用户权限自动生成的。系统属性不会显示在生成的界面里。

实体属性名称会按字母排序。默认情况下,值都为空,界面提交的时候,非空值会更新到所有的实体对象中。

批量实体编辑界面也支持批量删除值 - 实体对象的对应字段会设置为空( null)。操作方法是点击字段旁边的 gui_bulkEditorSetNullButton 按钮,点击之后,该字段变为不可编辑, 再次点击该按钮则该字段恢复可编辑。

gui invoiceBulkEdit

以下为在表格中使用 bulkEditor 批量编辑器的例子:

  1. <table id="invoiceTable"
  2. multiselect="true"
  3. width="100%">
  4. <actions>
  5. <!-- ... -->
  6. </actions>
  7. <buttonsPanel>
  8. <!-- ... -->
  9. <bulkEditor for="invoiceTable"
  10. exclude="customer"/>
  11. </buttonsPanel>

bulkEditor 批量编辑器的属性有

  • 属性 for 是必须的,它指向需要该功能的数据网格表格组件的标识;在上述例子中,应该是 invoiceTable
  • 属性 exclude 标识需要在批量编辑界面排除的字段,它可以包含一个正则表达式。比如: date|customer

    gui TableBulkEdit

  • includeProperties - 定义批量编辑界面需要包含的字段;设置它以后,其它字段会被忽略。

    includeProperties 不会应用到动态属性。

    以声明的方式设置时,多个属性之间应该用逗号隔开:

    1. <bulkEditor for="ordersTable" includeProperties="name, description"/>

    这些属性也可以在界面控制器中以编程的方式设置:

    1. bulkEditor.setIncludeProperties(Arrays.asList("name", "description"));
  • loadDynamicAttributes 定义实体的动态属性是否在批量编辑界面显示。默认为 true
  • useConfirmDialog 定义保存之前是否弹出确认对话框,默认为 true

    gui BulkEditor useConfirmDialog

  • columnsMode − 定义批量编辑界面列的数量,是 ColumnsMode 枚举的值。默认为 TWO_COLUMNS。示例:

    1. <groupTable id="customersTable"
    2. width="100%">
    3. <actions>...</actions>
    4. <columns>...</columns>
    5. <buttonsPanel id="buttonsPanel"
    6. alwaysVisible="true">
    7. ...
    8. <bulkEditor for="customersTable" columnsMode="ONE_COLUMN"/>
    9. </buttonsPanel>
    10. </groupTable>

批量编辑界面的外观可以通过以 $c-bulk-editor-* 开头的 SCSS 变量自定义。在创建了 主题扩展自定义主题 之后可以在可视化编辑器修改这些变量的值。


bulkEditor 批量编辑器的属性

align - caption - captionAsHtml - columnsMode - css - description - descriptionAsHtml - enable - exclude - box.expandRatio - for - icon - id - includeProperties - loadDynamicAttributes - openType - stylename - tabIndex - useConfirmDialog - visible - width