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