二级联动

开发过程当中,很多时候我们都需要使用到二级联动。二级联动,无非就是数据上的关联,我们首先就要找到数据与数据之间的关系,然后组成Map,或者List集合放到select中的value。
例如大项目与小项目:
1:组成数据组合,

Map<String, Map<String, String>> map = new HashMap<String, Map<String, String>>();
            for (ProductType p : mapList.keySet()) {
                Map<String, String> maptmp = new HashMap<String, String>();
                List<ProductType> tmpBomTypes = mapList.get(p);
                for (ProductType productBomType : tmpBomTypes) {
                    maptmp.put(productBomType.getId() + "",
                            productBomType.getTypeName());
                }
                map.put(p.getId() + "", maptmp);
            }
            JSONObject jsonObject = JSONObject.fromObject(map);
            // 放置到上下文对象中
            ValueContext.putValueContext("mapList", mapList);
            ValueContext.putValueContext("jsonMap", jsonObject);

2:jsp页面的js和html,

<script type="text/javascript">
$(function(){
    var map  = ${jsonMap};
    var value = $("select[parent]:eq(0)").val();
        var list = map[value];
        var child = $("select[child]:eq(0)");
        for(var key in list){
            child.append("<option value='"+key+"'>"+list[key]+"</option>");
        }
    $("select[parent]").change(function(){
        var value = $(this).val();
        var list = map[value];
        var child = $("select[child]:eq(0)");
        child.empty();
        for(var key in list){
            child.append("<option value='"+key+"'>"+list[key]+"</option>");
        }
    });
})
</script>

引用:

<tr>
<td>类型:</td>
<td><select name="parent" parent="true" >
    <s:iterator value="#mapList.keySet" >
    <option value="<s:property value="id"/>"><s:property value="typeName"/></option>
    </s:iterator>
    </select>
    <select name="productType.id" child="true" > </select></td>
</tr>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值