Skip to content

data_grid ​

表格。Type 为 data_grid。

Option.Grid 里的小写键是 dxDataGrid 的配置,常用的有 columns、keyExpr、editing、toolbar。下面只写平台加上的键。

最小例子 ​

javascript
{
  Type: "data_grid",
  Id: "orders",
  Option: {
    Component: {
      AutoLoad: true,
      LoadSql: { sql_id: 100 },
      UpdateRowSql: { sql_id: 101 },
      IdField: "id"
    },
    Toolbar: {
      Items: { Reload: true, Save: true, AddRow: true }
    },
    Grid: {
      keyExpr: "id",
      columns: [
        { dataField: "code", caption: "单号" },
        { dataField: "amount", caption: "金额", ValidRequired: true },
        { dataField: "owner_id", visible: false, KeepData: true }
      ]
    }
  }
}

Component ​

键说明
AutoLoad打开页面后是否立刻跑 LoadSql
ReadOnly整表只读
Width / Height组件宽高
LoadSql查询。对象里的 sql_id 指向 sys.page_sql
InsertRowSql插入一行
UpdateRowSql更新一行
DeleteRowSql删除一行
InsertRowWithIdSql先插入空行并取回 id
AfterSaveSql保存之后再执行的 SQL
AfterInsertRow插入之后执行的 "js:"
AfterUpdateRow更新之后执行的 "js:"
AfterDeleteRow删除之后执行的 "js:"
NewSql工具栏「新建」用的 SQL
NewRowsSql一次产生多行时用的 SQL
CloneSql克隆当前单据
CloneRowsSql克隆行
DeleteSql工具栏删除单据。删表格里的一行用 DeleteRowSql
IdField主键字段名
SeqField顺序字段,上移下移时读写它
UniqueField用来判断行是否重复的字段
RowDefaults新行的默认值
DataPool命名好的数据集。列上用 FromPool 引用
Init初始值。Init.MainSelect 是主选择框的初始值,可以写 "js:"
RowUnselectableExpr哪些行不能选,写 "js:"
RememberSelection记住当前选择
AppendBlankColumn在最后补一列空白,避免最后一列被拉得太宽
DynamicColumns动态列。里面是 Column(列定义)和 LoadSql
Import导入。里面是 Sql、Batch、ChunkSize
Auth这一页权限行为的开关

ActionAuthTriState、ColumnAuthTriState、FormFieldAuthTriState,以及 SyncActionsOnSelect、SyncColumnsOnSelect、SyncFormFieldsOnSelect 是权限配置页自己用的。业务页不要写。

LoadSql 这类对象里,sql_id 和其它参数平级:

javascript
LoadSql: { sql_id: 100, status: "未关闭" }

Toolbar ​

Items 的键是按钮名,值是 true / false,或一段工具栏项配置。MoreItems 是自定义按钮数组。

按钮名作用
MainSelect主选择框,选中的值会作为后续 SQL 的参数
New新建
Clone克隆
Delete删除单据
Send发送单据
Save保存
Reload重新加载
Filter / Filter2两个筛选框
Date单个日期
StartDate / EndDate日期范围
StartTime / EndTime时间范围
AddRow加一行
AddRowsBatch批量加行
AddFolder加一个分组行
CloneFrom从选择器克隆过来
CloneRows克隆选中行
ReplaceRow替换选中行
DeleteRow删除选中行
MoveUp / MoveDown上移、下移
ExpandAll / CollapseAll全部展开、全部收起
Import / Export导入、导出
WrapText单元格换行
ToggleHeaderRow显示或隐藏标题行
ToggleFilterRow显示或隐藏过滤行
ResetLayout恢复列宽、列顺序

工具栏项上还可以写:

键说明
LoadWhenEmpty选择框还是空的时候也允许加载
DeleteNow删除时立刻提交,不等到点保存
OperationIndex点这个按钮时执行 Operations 里的第几项
CallMethod调用组件上的方法名

DevExtreme 自带的工具栏项保持小写,例如 searchPanel、columnChooserButton。

Grid 上的平台键 ​

这些键写在 Option.Grid 上,和 columns 平级:

键说明
VerticalAlign单元格垂直对齐
MergeBaseField合并单元格时,用哪个字段判断是不是同一组
StateList列状态相关的列表

列上的平台键 ​

写在 Grid.columns[] 的某一列上,和 dataField、caption 平级。dataField、caption、visible、dataType、lookup 都是 DevExtreme 的键。

键说明
KeepData列隐藏后仍把字段留在结果里。见 页面 JSON
Default新行该列的默认值
Wrap该列换行
Help列头帮助文字
MergeCells按 MergeBaseField 合并这一列
ValidRequired保存前必填
ValidExpr保存前的校验表达式
ValidSkipOnSave保存时跳过这一列的校验
BoolAsNum勾选框在界面上是布尔,入库写成 0 和 1

列的 lookup 里可以用 LoadSql 填充下拉数据,同级先放 dataSource: [],再用 InitSql。

和按钮配套的其它块 ​

这些块和 Component 平级,用来描述「点某个按钮之后弹出什么、跑哪条 SQL」。

块里面的键
OperationsName、Version、Popup、Sql、RunJs、GotoPage、ReloadAfter、Grid
Operations[].PopupForm、DisableOk、DisableCancel、When
Operations[].GotoPagePageId、Title、Params、When
Pickers选择器。Name、LoadSql、Grid、Popup、Fetch
Pickers[].FetchSql、FromField、ToParam、UniqueField
AddRowByFormEnabled、OperationIndex、SaveNow、RowIterator
AddRowByPicker / AddRowsBatchByPicker / ReplaceRowByPicker / CloneByPickerEnabled、PickerIndex、WrapAsFolders、FolderNameField

When、RunJs、RowIterator 都可以写 "js:"。

这里写平台本身。某一家客户的业务表不在这份文档里。