关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 11736|回复: 2

[Online开发] 扩展只读属性

[复制链接]
发表于 2018-8-22 09:25:10 | 显示全部楼层 |阅读模式
本帖最后由 只来只往 于 2018-8-22 09:26 编辑

版本:3.7.7
需求:在online表单开发功能中,在校验字典中增加只读列。
目的:通过对字段的设置,达到表单中该字段无论在何种情况下均为只读状态

实现步骤:
(1)cgform_field中添加字段field_readonly_input,数据类型为varchar,长度为2,注释为:字段是否只读
(2)/org/jeecgframework/web/cgform/entity/config/CgFormFieldEntity.java文件中添加属性 fieldReadonlyInput   
    代码为:private String fieldReadonlyInput;
            @Column(name="field_readonly_input")
            public StringgetFieldReadonlyInput() {
               return fieldReadonlyInput;
            }
            public voidsetFieldReadonlyInput(String fieldReadonlyInput) {
               if ("on".equals(fieldReadonlyInput)) {
                   fieldReadonlyInput = "Y";
               }else{
                   if ("Y".equals(fieldReadonlyInput)) {
                      fieldReadonlyInput = "Y";
                   }else {
                      fieldReadonlyInput = "N";
                   }
               }
               this.fieldReadonlyInput = fieldReadonlyInput;
           }
(3)/webapp/plug-in/cgform/fields/cgformOfCheck.html文件中添加代码:
<th align="center"bgcolor="#EEEEEE" style="width:120px;">是否只读</th>
<td align="left"style="width:120px;">
                  <input name="columns[#index#].fieldReadonlyInput"type="checkbox" />
              </td>
以上代码已实现在校验字典中的显示,和只读字段的数据存储

(4)修改模板文件/resources/online/template/default/html/jform.ftl,在增加校验必填项前面增加代码:
<#ifpo.field_readonly_input??><#if po.field_readonly_input == 'Y'>readonly = "readonly"</#if></#if>


问题:第一到第三步均已实现,没有问题,现第四步做完后,页面中并没有只读属性。如下第二张图所示:麻烦帮分析下原因

调试情况:通过代码跟踪CgFormBuildController中的ftlForm方法,CgFormHeadEntity对象是有只读字段属性的,如下第一张图所示:



TIM图片20180822092337.png
TIM图片20180822092458.png
 楼主| 发表于 2018-8-22 15:23:09 | 显示全部楼层
解决了,结贴吧
发表于 2018-8-23 09:43:26 | 显示全部楼层
ok
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表