dwz+jfinal 市县下拉菜单二级联动(实例)

1549年前 (2016-06-20)Jfinal5373

在DWZ文档中对组合框combox的是这样描述的:

在传统的select 用class 定义:class=”combox”, html 扩展:保留原有属性name,  增加了属性:ref。

ref 属性则是为了做级联定义的,ref所指向的则是当前combox值改变成引起联动的下一级combox,ref用下一级combox的id属性来赋值。注 意:一般combox没必要设置id属性,只要级联时需要设置子级id等于父级ref,不同navTab和dialog中combox组件id必须唯一

以下是DWZ框架里面的示例代码:

<h2 class="contentTitle">下拉菜单</h2>
<div class="pageContent" layoutH="56">
   <select class="combox" name="province" ref="w_combox_city" refUrl="demo/combox/city_{value}.html">
       <option value="all">所有省市</option>
       <option value="bj">北京</option>
       <option value="sh">上海</option>
       <option value="zj">浙江省</option>
   </select>
   <select class="combox" name="city" id="w_combox_city" ref="w_combox_region" refUrl="demo/combox/region_{value}.html">
       <option value="all">所有城市</option>
   </select>
   <select class="combox" name="region" id="w_combox_region">
       <option value="all">所有区县</option>
   </select>

   <div class="divider"></div>

   <select class="combox" name="test">
       <option value="1">1</option>
       <option value="2">2</option>
       <option value="3">3</option>
       <option value="4">4</option>
       <option value="5">5</option>
       <option value="6">6</option>
       <option value="7">7</option>
       <option value="8">8</option>
       <option value="9">9</option>
   </select>

</div>   
 [
   ["all", "所有城市"], 
    ["bj", "北京市"]
  ]

根据以上可以看出,combox的工作模式是这样的,当一级菜单的某个选项选中时,就会执行相应的refUrl=“X.action",通过服务 器返回json格式的页面后,并根据一级菜单中定义的ref="XXX"来寻找二级菜单中id=“XXX”,将返回的json页面放入二级菜单中,与此同 时,如果还有三级菜单的话,由于二级菜单的数据的改变,二级菜单中也会执行其相应的refUrl,随后服务器同样返回json格式页面,寻找与ref匹配 的id三级菜单进行联动..以此类推。

jfinal例子:

页面:
               <dl >
            <dt>项目所在城市:</dt>
            <dd>
                <select name="model.city" class="combox required" ref="s_county" refUrl="${root!}/admin/itemInfo/getCounty/{value}">
                    <option value="">===全省===</option>
                    <#list city as n>
                    <option value="${n.id}">${n.mc}</option>
                    </#list>
                   </select>
            </dd>
        </dl>
        <dl >
            <dt>项目所在县:</dt>
            <dd>
                <select class="combox"  name="model.county" id="s_county">
                   </select>
            </dd>
        </dl>
后台:
      /***
     * 根据市名获取县名
     *
     */
    public void getCounty(){
        //17地市加载
        List list3 = DmCounty.dao.find("select id,mc from dm_county where c_dm = '"+getPara()+"'");
         StringBuilder jsonStr = new StringBuilder();
         jsonStr.append("[[\"\",\"==全部==\"]");
        for (int i =0;i<list3.size();i++){
            DmCounty dmCounty = (DmCounty) list3.get(i);
            jsonStr.append(",[");
            jsonStr.append("\"" + dmCounty.get("id") + "\",");
            jsonStr.append("\"" + dmCounty.get("mc") + "\"");
            jsonStr.append("]");
        }
        jsonStr.append("]");
        renderHtml(jsonStr.toString());
    }

本文原创,转载必追究版权。

分享给朋友:

相关文章

HashMap中的Object(value值)以int类型取出

 根据jdk的情况使用  int value= (Integer) ((HashMap<String, Object>) object1).get("...

 程序员的中秋礼物.......

程序员的中秋礼物.......

【小姐你好,我是程序员】“小姐你好,我是程序员。”女生礼貌地回答:“你好,程先生。”男:“……哦,叫我序员就可以了。”   【程序员的愿望】有一天一个程序员见到了上帝。上...

MyEclipse 10 性能大优化

MyEclipse 10 性能大优化

 MyEclipse 10已发布,新版本的特性能够大大提高开发者的效率。但同时,由于电脑配置的原因,很多开发者在使用MyEclipse的时候,速度都不是很快,需要我们对MyEclipse进行...

freeMarker Jfinal 获取session里的值

问题:freeMaker session取值的常用格式都试过 session["xxx"],session.xxx 直接xxx 都取不出来?????解决:JFinal与Struts...

太阳的后裔 经典对白(羞羞哒)

太阳的后裔 经典对白(羞羞哒)

关于电视剧 ,小编常说早就戒了,但是好剧呢还是要追滴。太阳的后裔, 追剧追到12集了,开始都是宋仲基比较调皮:我很想问你一件事情。什么都不要问,你知道我要问什么。看你现在一脸都是很想嘲笑我的表情。哪有...

开机密码忘记怎么办

1、重新启动计算机,在启动画面出现后马上按下F8键(不同类型型号电脑启动键不一样,参考附加),选择“带命令行的安全模式”。2、运行过程结束时,系统列出了系统超级用户“administrator”和本地...

评论列表

阅读网
阅读网
9年前 (2016-06-26)

感谢分享

贵阳美贝尔植
9年前 (2016-10-21)

感谢分享

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。