1 html页面获取二级代码列表
主要是使用easyui-combobox控件,调用JS方法initDict2(getDictLisst(‘二级代码名称’),’页面对应的ID’),initDict()方法也兼容。
例子:
initDict2(getDictList("AKD106"), "AKD106");
initDict2(getDictList("AKD106"), "AKD106",true);
第三个参数,是否设置第一个值为默认值,如果控件中有value属性值,则会默认取value的值作为默认值。
第一、二个参数必填,第三、四个参数可选。
也可以用这种方法
#dict("AKD106");---返回列表
#dict("AKD106",AKD106);--返回具体值
#dict("AKD106",AKD106,"未知");--如果没有具体值,显示最后一个值
/**
* 封装数据字典标签,前台使用#dict(参数1,参数2,参数3) 。规定使用@符号表示过滤前缀,用|符号表示过滤in数据<br>
* 参数1必须填写,当只有一个参数时,返回该字典的所有数据,并转化为字符串类型<br>
* 参数2为非必填,当只有两个参数时,返回该字典对应的具体值<br>
* 参数3为非必填,当有三个参数时,如果找到第二个参数对应的值,则返回,如果找不到,返回第三个参数默认值<br>
* 示例1:#dict("BKA254"),返回[{AAA102:"C001",AAA203:"静脉注射"},{},{},...]<br>
* 示例2:#dict("BKA254","C001"),返回“静脉注射”<br>
* 示例3:#dict("BKA254","C001","无"),返回“静脉注射”,因为字典中有此值<br>
* 示例4:#dict("BKA254","C001001","无"),返回"无",字典中无此值<br>
* 示例5:#dict("BKA254@A"),返回A开头的二级代码列表;
* 示例6:#dict("BKA254#C001,C002"),返回C001,C002二级代码列表
*/
2 JS中获取二级代码列表
直接调用getDictList方法即可,有两个参数。
3 页面中获取二级代码值
1、#(mv[“AKD106”][AKD106]??)
2、#dict(“AKD106”,AKD106)
两个方法都可以。
4 JS中获取二级代码值
直接调用getDictVal(‘AKD106’,AKD106)。
5 实现原理
二级代码数据通过脚本动态获取到数据,并写到服务器硬盘中,不占内存。
<script type="text/javascript" src="/comm/global/jump?url=/static/js/dict.js"></script>
dict.js通过jfinal标签获取数据,这个文件在首页生成,如果不刷新首页会一直存在。当二级代码发生变化时,需要刷新缓存,并刷新首页,其他子页面才会生效。
#dict()是通过标签从缓存中获取数据,二级代码发生变化时需要刷新缓存才生效。
这两个方法在数据量小的时候,没有区别,均可使用,数据量大时,建议使用getDictXXX,即是直接读取硬盘中的数据,不占内存。
6 DataGrid中二级代码格式化
不再使用dict属性,直接写formatter=”frmDictVal”
注意: layui tpl中可以直接调用js函数,但不可以使用JFinal标签
文档更新时间: 2020-09-29 15:44 作者:周光