dijit/form/FilteringSelect 的使用记录

项目中需要用到二级联动的下拉框,第一级下拉框是同步加载的,第二级是根据第一级的选择项js动态生成。花了不少的时间调试,把它记录下来,给自己和开发中要用到的大家一点参考。先上效果图:
这里写图片描述

上代码:
dept.jsp

<s:select data-dojo-type="dijit/form/FilteringSelect" name="firstDeptCode" 
onchange="dept.select(this.value, null)" list="#request.firstDeptViews"                             
listKey="deptId" listValue="name"></s:select>

<input data-dojo-type="dijit/form/FilteringSelect" id="form_deptCode" name="deptCode"/>

dept.js

/**
* url:将上一级部门的ID作为参数,获取到二级部门list:secondDeptViews
*/

dept.select = function (deptId, deptCode) {
        var secondDeptSelect = dijit.registry.byId("form_deptCode");
        request.post(url,{
            handleAs : "json",
            data : {
                deptId: deptId
            },
            preventCache : true
        }).then(function(data) {
            var secondDeptViewsData = data.secondDeptViews;
            secondDeptSelect.store = new dojo.store.Memory({
                idProperty: "code",
                data : secondDeptViewsData
            });
            // 新建或修改或查询时,设置二级部门值
            if (parent != "" && parent > 0){
                // 如果是新建或查询,设置列表第一个值
                if (deptCode == null){
                    secondDeptSelect.set("value", secondDeptViewsData[0].code);
                }
                // 如果是修改,将原code设值
                else {
                    secondDeptSelect.set("value", deptCode);
                }
            }
        }, function(error) {
            util.msgDlg(error);
        });
    };

说明:dijit/form/FilteringSelect中的list可以是list也可以是map:
map是需要自己将key和value自己拼装,麻烦点,但是看起来会明白点,最后没用map的原因是在后面修改时,name中值无法回写,可能是自己哪里没配好,导致找了很长时间也没找出原因。s:select 中的listKey listValue分别就是map中的key和value;
list的列表中的是dept的javabean,包含”deptId” 、”name”等字段信息,配置如dept.jsp所示。

才疏学浅,写得不对的地方欢迎点评,私信。

也可关注我的微信公众号『TyronToCoder』,一起交流学习。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值