只来只往 发表于 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对象是有只读字段属性的,如下第一张图所示:



只来只往 发表于 2018-8-22 15:23:09

解决了,结贴吧

admin 发表于 2018-8-23 09:43:26

ok
页: [1]
查看完整版本: 扩展只读属性