查看: 14700|回复: 5

针对表单组件的问题

升级   7.61%

71

主题

83

回帖

761

积分

注册会员

Rank: 2

积分
761
发表于 2022-3-24 11:02:40 | 显示全部楼层 |阅读模式
1、如何监听Tab组件选择标签的事件,获取选择的是哪个标签?
2、如何将某个div里的所有内容动态的设置只读,例如根据员工所在部门只能填写对应标签下的内容,其他标签页里内容只能只读
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2022-3-25 10:28:56 | 显示全部楼层
1、看不太懂您的意思,是获取当前点击的tab页签的名字?
var tab = this.form.get("fieldId").tab; //获取组件对象
var p;
tab.pages.each( function( page ){
    if( page.isShow )p = page;
}.bind(this))
//p 是选中的
2、不能直接设置div里所有的控件只读,只能通过脚本单个控件去设置。
回复

使用道具 举报

升级   7.61%

71

主题

83

回帖

761

积分

注册会员

Rank: 2

积分
761
发表于 2022-3-25 16:50:24 | 显示全部楼层
本帖最后由 zheng 于 2022-3-25 17:22 编辑
论坛管理员 发表于 2022-3-25 10:28
1、看不太懂您的意思,是获取当前点击的tab页签的名字?
var tab = this.form.get("fieldId").tab; //获取 ...

那table组件能直接设置全部只读吗,就是针对大组件这种控制。还是说系统只支持某个单独的控件的只读?
//可以在脚本中获取该组件var json = this.form.get("fieldId").json; //获取组件对象var id = json.id; //获取组件的idvar type = json.type; //获取组件的类型,如Textfield 为文本输入组件,Select为下拉组件//在组件queryLoad事件里设置组件只读。//当前组件的queryLoad事件运行时还没有在form里注册,通过this.form.get("fieldId")不能获取到当前组件,需要用this.target获取。var json = this.target.json;json.isReadonly = true; //设置组件为只读。我使用上面这种方式是无效的
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2022-3-28 09:59:12 | 显示全部楼层
只能通过某个单独的控件设置只读
在事件里的queryLoad事件这样this.target.json.isReadonly=true;可以
在表单的load事件中this.form.getApp().appForm.json.moduleList["subject"].isReadonly=true;这样也是可以的
回复

使用道具 举报

升级   7.61%

71

主题

83

回帖

761

积分

注册会员

Rank: 2

积分
761
发表于 2022-3-28 12:01:30 | 显示全部楼层
论坛管理员 发表于 2022-3-28 09:59
只能通过某个单独的控件设置只读
在事件里的queryLoad事件这样this.target.json.isReadonly=true;可以
在表 ...

好的 感谢
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2022-3-28 15:04:37 | 显示全部楼层
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread