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

3 篇文章 2 订阅
2 篇文章 0 订阅

这里写图片描述
如上图的datagrid,可以点击右边的修改变成如下图:
这里写图片描述
将原有的值显示出来了,不会是空值情况
具体解决的关键性代码:

<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="checkcolumn" allowSort="false" width="30"></div>-->
            <div type="indexcolumn" width="40">序号</div>
            <div field="XYBZ" name="XYBZ" displayField="XYBZ_MC" headeralign="center" align="center" width="70">选用状态
                <input 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">系统分类
                <input 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">业务类别
                <input 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">表含义
                <input 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">
                数据加工规则<input 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属性值设为代码字段列名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值