miniUI的datagrid表格编辑时将原有的值带出来的技巧

miniUI的datagrid表格编辑时将原有的值带出来的技巧_第1张图片
如上图的datagrid,可以点击右边的修改变成如下图:
miniUI的datagrid表格编辑时将原有的值带出来的技巧_第2张图片
将原有的值显示出来了,不会是空值情况
具体解决的关键性代码:

<div id="datagrid1" class="mini-datagrid" allowResize="true" allowAlternating="true"
         ondrawcell="onActionRenderer" idField="TABLEID" autoLoad="false" pager="#pager1" pageSize="20"
         url="sjzcwhLoadData.json?logic-name=sjzcwh_load_data_logic">
        <div property="columns">
            <div field="TABLEID" name="TABLEID" visible="false" type="hidden" class="mini-hidden">div>
            --
--> <div type="indexcolumn" width="40">序号div> <div field="XYBZ" name="XYBZ" displayField="XYBZ_MC" headeralign="center" align="center" width="70">选用状态 property="editor" class="mini-combobox" style="width:100%;" data="[{ id: 'Y', text: '选用' }, { id: 'N', text: '不选用'}]"/>div> <div field="XTFL" name="XTFL" displayField="XTFL_MC" headeralign="center" align="center" width="130">系统分类 property="editor" class="mini-combobox" style="width:100%;" textField="XTFL_MC" valueField="XTFL_DM" url="xtflData.json?logic-name=xtfl_data_logic"/>div> <div field="YWLB" name="YWLB" displayField="YWLB_MC" headeralign="center" align="center" width="70">业务类别 property="editor" class="mini-combobox" style="width:100%;" textField="YWLB_MC" valueField="YWLB_DM" url="ywlbData.json?logic-name=ywlb_data_logic"/>div> <div field="YHM" name="YHM" headeralign="center" align="center" width="100">用户名div> <div field="BMC" name="BMC" headeralign="center" align="center" width="120">表名div> <div field="BZS" name="BZS" headeralign="center" align="left" width="120">表含义 property="editor" class="mini-textbox" style="width:100%;"/>div> <div field="BSJL" name="BSJL" headeralign="center" allowsort="true" align="center" width="70">表数据量div> <div field="CJSJ" name="CJSJ" headeralign="center" allowsort="true" align="center" width="120">创建时间div> <div field="ZXXGSJ" name="ZXXGSJ" headeralign="center" allowsort="true" align="center" width="120">最新修改时间 div> <div field="ZXSXSJ" name="ZXSXSJ" headeralign="center" allowsort="true" align="center" width="120">最新刷新时间 div> <div field="SJJGGZ" name="SJJGGZ" headeralign="center" align="left" width="120"> 数据加工规则property="editor" class="mini-textbox" style="width: 100%"/> div> <div field="ACTION" name="ACTION" headeralign="center" align="center" width="80">操作div> div> div>

可以看到,在可以编辑的单元格列的div中包含了一个input标签。
那怎么样将值带出来呢?很神奇的是,只需要在可编辑的那一列加上display属性即可。
但是这里很关键,display的属性值是多少呢?
这个就得关联到数据层了,在写SQL语句的时候,返回对应的字段值,将这个字段值设为display的属性值即可,如:

select t.table_id TABLEID,
                decode(t.xybz, 'Y', '选用', 'N', '不选用') XYBZ_MC,
                t.xybz XYBZ,
                (select d.dm
                from sjzcgl_dm d
                where t.xtfl_dm = d.dm
                and d.lb_dm = 'XTFL') XTFL,
                (select d.mc
                from sjzcgl_dm d
                where t.xtfl_dm = d.dm
                and d.lb_dm = 'XTFL') XTFL_MC,
                (select d.dm
                from sjzcgl_dm d
                where t.ywlb_dm = d.dm
                and d.lb_dm = 'YWLB') YWLB,
                (select d.mc
                from sjzcgl_dm d
                where t.ywlb_dm = d.dm
                and d.lb_dm = 'YWLB') YWLB_MC,
                t.user_name YHM,
                t.table_name BMC,
                t.table_comment BZS,
                t.table_count BSJL,
                to_char(t.create_time, 'yyyy-mm-dd') CJSJ,
                to_char(t.last_upd_time, 'yyyy-MM-dd') ZXXGSJ,
                to_char(t.last_ref_time, 'yyyy-MM-dd') ZXSXSJ,
                t.DATA_UPD_RULE SJJGGZ
                from sjzcgl_zb t

其实出现这种问题的原因就是在于某一列是用代码为value的
如上,页面代码中的field=“XYBZ”和displayField=“XYBZ_MC”,是对应于SQL结果集中的“XYBZ”和“XYBZ_MC”;
同理field=“XTFL”和displayField=“XTFL_MC”,是对应于SQL结果集中的“XTFL”和“XTFL_MC”;

以上得出结论:displayField属性值设为代码对应名称的字段列名,field属性值设为代码字段列名。

你可能感兴趣的:(前端,java,数据库)