|
本帖最后由 yonyouhmm 于 2024-2-26 09:44 编辑
1、设置表格固定高度
- viewModel.getGridModel().setState('fixedHeight', 300);
复制代码 表格吸底:扩展属性中增加 {subTableFullHeight: true}
2、开启表格简版分页
- viewModel.getGridModel().setCache('useSimplePagination', true);
复制代码 3、表格表头设置
- viewModel.on('afterLoadMeta',()=>{
- let gridModel = viewModel.getGridModel();
- //隐藏表头排序
- gridModel._set_data('multiSort',false);
- //隐藏表头锁定列
- gridModel._set_data('unLock',true);
- //隐藏表头锁定定位
- gridModel._set_data('unLookUp',true);
- //隐藏表头筛选
- gridModel._set_data('unColFilter',true);
- })
复制代码
隐藏指定列的:viewModel.getGridModel().setColumnState('new1','unColFilter',true)
4、监听表格页码跳转的动作
- viewModel.getGridModel().setCache('lazyLoadByPage', true)
- viewModel.getGridModel().on('lazyLoadByPageInfo',function(data){
- //data 包含pageIndex pageSize两个入参
- debugger;
- })
复制代码 5、多行表头
编辑器中给字段增加属性:"multiLayeredNames": "顶层|测试|字段2"
6、设置子表某一列不能修改
- viewModel.getGridModel().getEditRowModel().get('new3').setState('bCanModify',false)
复制代码 7、脚本控制主子切换
- //第二个参数为true 页面才正常刷新
- viewModel.get('sumSwitch').setValue(false,true);
复制代码 8、列表中某列数据相同合并
- let gridModel = viewModel.getGridModel();
- gridModel.setColumnState("new2", "bMergeCol", true);
- gridModel.setColumnState("staffNew_name", "bMergeCol", true);
- gridModel.setState('mergeCells', true);
- gridModel.setState('mergeMode', 2);//数据合并
- gridModel.setState('mergeSourceName', 'new2'); //根据哪个字段合并,默认根据主键id合并
- gridModel.setState('mergeSourceName', 'staffNew_name');
- gridModel.setState('mergePosition','first');//合并方式向上对齐, 默认是居中center合并
复制代码 9、列表中有afterCellValueChange事件,怎么在gridModel.setCellValue之后用脚本触发
- viewModel.get('button27hg') && viewModel.get('button27hg').on('click', function (data) {
- viewModel.getGridModel().setCellValue(0,'new1','8');
- viewModel.getGridModel().execute('afterCellValueChange', {rowIndex: 0, cellName: 'new2',value:viewModel.getGridModel().getCellValue(0,'new1')});
- });
复制代码 10、表格颜色控制
- function loadStyle(params){
- var headobj=document.getElementsByTagName('head')[0];
- var style = document.createElement('style');
- style.type = 'text/css';
- headobj.appendChild(style);
- style.sheet.insertRule(params, 0);
- }
- loadStyle('.public_fixedDataTableRow_highlight-red [role="gridcell"] {background-color:red;}')
-
- gridModel.on('afterSetDataSource',()=>{
- //修改单元格字体颜色
- //前两个参数分别为行号和字段编码
- gridModel.setCellState(1,'new2','style',{color:'red'})
- //修改单元格背景色
- gridModel.setCellState(0,'new2','style',{background:'red'})
- //修改某列颜色
- gridModel.setColumnState('new4', 'style', {backgroundColor:'red'});
- //修改某行颜色
- gridModel.setRowState(2, 'className', 'highlight-red');
- })
复制代码
11、表格取消行点击和checkbox联动
表格的扩展属性中增加:selectOnChecked: false
12、如何自定义表格数据并设置分页
前端函数:
- viewModel.getGridModel().on('afterSetDataSource', function (data) {
- let b = viewModel.getCache("remark");
- let gridModel = viewModel.getGridModel();
- if (!b) {
- let pageIndex = gridModel.getPageIndex();
- let pageSize = gridModel.getPageSize();
- let res = cb.rest.invokeFunction("AT166892061D00000A.backDesignerFunction.queryModelList", {pageIndex:pageIndex,pageSize:pageSize},function(err, res) {},viewModel,{async:false})
- debugger;
- let total = res.result.total;
- viewModel.setCache("remark", 1);
- gridModel.setState('dataSourceMode','local');
- gridModel.setDataSource(res.result.data);
- gridModel.setPageInfo({
- pageSize: pageSize,
- pageIndex: pageIndex,
- recordCount:total
- });
- } else {
- viewModel.clearCache('remark');
- }
- });
复制代码 后端api函数:
- let AbstractAPIHandler = require('AbstractAPIHandler');
- class MyAPIHandler extends AbstractAPIHandler {
- execute(request){
- let pageIndex = request.pageIndex;
- let pageSize = request.pageSize;
- let sql = "select id, new1,new2,new3 from AT166892061D00000A.AT166892061D00000A.modalFrom limit "+ pageIndex +","+ pageSize;
- let sql2 = "select count(1) as count from AT166892061D00000A.AT166892061D00000A.modalFrom"
- var res = ObjectStore.queryByYonQL(sql);
- var total = ObjectStore.queryByYonQL(sql2);
-
- return {data:res,total:total[0].count};
- }
- }
- exports({"entryPoint":MyAPIHandler});
复制代码
13、子表中禁止某行批量粘贴:
gridModel.on("beforePasteForbidden", function(data, column){console.log(data.cellName);if(data.cellName === 'qty') return false})
14、子表高度自适应
// 卡片页(第一个子表)表体横向滚动条吸底显示在table容器的cStyle中配置属性:{subTableFullHeight: true}
15、如何自定义表格分页组件每页多少条?
cExtPRops里配 pageSizeOptions,值的格式:['10', '20', '50', '100'] 注意转成字符串
行编辑表,打开table编辑器,加入"pageSizeOptions": [20,50000
16、子表行支持行拖拽 变换子表行的顺序
viewModel.getGridModel().setRowDraggable(true);
17、表格小计和合计扩展
//小计扩展
viewModel.getGridModel().on('afterCalcSubTotal',args=>{
debugger;
//自己按照需求遍历求和 然后赋值
args.new4 = 2;
})
合计:viewModel.getGridModel().doPropertyChange('setSum', [{new2:5,new3:5}]);
18、列表页表格单元格中的内容怎么自动换行?
将列的cControlType改成'textarea',然后表格扩展属性增加openContentHeight':true
|
|