帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层

按钮根据数据状态控制显隐

[复制链接]
发表于 2024-2-29 10:17:38
客户喜欢能根据数据状态控制按钮的显隐,例如,当数据为停用时,行按钮为启用,反之亦然。
本来想通过页面规则来控制,但发现没有交互规则。
因为可能会有很多行数据,除了每次页面拿取数据遍历控制按钮显隐,还可以有别的方式吗

本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
蔡Tommy
13
帖子
2
勋章
4万+
Y币
最佳答案
可以通过脚本实现,比如viewModel.get('按钮编码').setVisible(true/false)
13
帖子
2
勋章
4万+
Y币
可以通过脚本实现,比如viewModel.get('按钮编码').setVisible(true/false)
蔡Tommy · 2024-2-29 11:27可以通过脚本实现,比如viewModel.get('按钮编码').setVisible(true/false)

老师,列表的数据可能很多,这个是个行按钮,如果遍历查询每行数据再控制每一个的按钮显隐响应速度会变慢吗
13
帖子
2
勋章
4万+
Y币
不会有太多影响
蔡Tommy · 2024-2-29 11:30不会有太多影响

好的,那我就用这种方式了,谢谢老师
0
帖子
0
勋章
21
Y币
可以用GridModel的 beforeSetActionsState 事件
BIP114524 · 2024-3-6 09:42可以用GridModel的 beforeSetActionsState 事件

谢谢指导,目前是用遍历树表数据后根据数据状态来遍历每个按钮设置他的状态来实现的,您的方法我研究一下
蔡Tommy · 2024-2-29 11:27可以通过脚本实现,比如viewModel.get('按钮编码').setVisible(true/false)

老师你好,我这样写了没生效啊

本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
谢谢老师!!! · 2024-3-7 11:31老师你好,我这样写了没生效啊


function (event) {
  var viewModel = this;
  //获取当前的model
  let gridModel = viewModel.getGridModel();
            //afterSetDataSource界面加载完成后,对数据进行修改
            gridModel.on('afterSetDataSource', () => {
            //获取列表所有数据
                const rows = gridModel.getRows();
            //从缓存区获取按钮
                const actions = gridModel.getCache('actions');
                if (!actions) return;
                const actionsStates = [];
                rows.forEach(data => {
                    const actionState = {};
                    actions.forEach(action => {
                //设置按钮可用不可用
                        actionState[action.cItemName] = { visible: true };
                        if(action.cItemName == 'btnDelete'){
                            if(data.enable==1){
                                actionState[action.cItemName] = { visible: false };
                            }
                        }
                    });
                    actionsStates.push(actionState);
                });
                setTimeout(function(){
                  gridModel.setActionsState(actionsStates);
                },50);

            });
}

普通列表页可以参考这个
零售分销客开-韩文浩 · 2024-3-7 11:33function (event) {
  var viewModel = this;
  //获取当前的model

这个代码我写在设计器里,加载页面的时候浏览器会卡死崩掉
12下一页
您需要登录后才可以回帖 登录

本版积分规则