table_options
- table_options
使用范围: client
编程语言: javascript
父类: Item 类
描述说明
table_options 属性一个选项的集合,它们决定了视图表单中的表格将如何显示。
如果 create_table 的可选参数没有覆盖相关选项,那么它会使用定义在 table_options 里面的选项。
在应用程序构建器中,在 视图表单对话框 的 布局(Layout) 选显卡中设置这些选项。
你可以在实体项的 on_view_form_created 事件处理程序中更改 table_options ,请见示例。
table_options 参数是一个有下列属性的对象:
选项 |
描述 |
|---|---|
row_count |
指定表格显示的行数。 |
height |
若未指定 row_count,则由该参数决定表格高度,默认值为 480。 表格创建时会根据此参数值计算显示的行数(row_count)。 |
fields |
字段名称的列表。若指定该参数,会为列表中的每个字段创建一列; 若未指定(默认情况),则使用 view_options 的 fields 属性。 |
title_line_count |
指定标题行显示的文本行数。若值为 0,行高由标题单元格的内容决定。 |
row_line_count |
指定表格行显示的文本行数。若值为 0,行高由单元格的内容决定。 |
expand_selected_row |
若已设置 row_line_count 且 expand_selected_row 大于 0, 则指定表格选中行显示的最小文本行数。 |
title_word_wrap |
指定列标题文本是否允许自动换行。 |
column_width |
列宽默认由浏览器自动计算。可使用该选项强制指定列宽。 该选项为一个对象,其键名为字段名,值为 CSS 单位格式的列宽。 |
editable_fields |
可在表格中编辑的字段名称的列表。 |
selected_field |
若设置了 editable_fields,指定当选中行发生变化时, 会自动选中其对应列的字段名。 |
sortable |
若指定该选项,可通过点击表格列标题对数据记录进行排序。 若未指定 sort_fields 选项(默认),用户可按任意字段排序; 否则,仅可按该选项中列出的字段排序。 |
sort_fields |
可通过点击对应列标题进行排序的字段名称列表。 若实体项为明细项,排序操作在客户端执行; 否则在服务端执行(内部使用 open 方法) |
summary_fields |
字段名称列表。指定后,表格会为数值型字段计算合计值并显示在表尾, 非数值型字段则显示记录总数 |
freeze_count |
一个整数值。若大于 0,指定前几列固定显示 —— 表格水平滚动时, 这些列不会跟随滚动。 |
show_hints |
若为 true,当鼠标悬停在文本内容超出单元格尺寸的表格单元格上时, 会显示提示框。默认值为 true。 |
hint_fields |
字段名称列表。若指定该参数,无论 show_hints 的值如何, 仅会为列表中的字段显示提示框 |
on_click |
指定用户点击表格行时执行的函数。函数会将当前数据项作为参数传入。 |
on_dblclick |
指定用户双击表格行时执行的函数。函数会将当前数据项作为参数传入。 |
dblclick_edit |
若该选项值为 true 且未设置 on_dblclick, 用户双击表格行时会显示编辑表单。 |
multiselect |
若设置该选项,会在最左侧生成一列复选框用于选择记录。 用户点击复选框时,记录的主键字段值会添加至 selections 属性,或从中移除。 |
select_all |
若为 true,表格表头最左侧会显示一个菜单, 允许用户选中所有匹配当前筛选和搜索条件的记录 |
row_callback |
记录字段每次发生变化时调用的回调函数。 函数接收两个参数:发生变化的数据项、对应表格行的 jQuery 对象。 注意:传入函数的数据项可能不是原数据项本身, 而是共享同一数据集的克隆对象。 |
示例
function on_view_form_created(item) {
item.table_options.row_line_count = 2;
item.table_options.expand_selected_row = 3;
}
下来两个示例的代码作用一样:
item.invoice_table.create_table(item.view_form.find('.view-detail'), {
height: 200,
summary_fields: ['date', 'total'],
});
item.invoice_table.table_options.height = 200;
item.invoice_table.table_options.summary_fields = ['date', 'total'];
item.invoice_table.create_table(item.view_form.find('.view-detail'));