八:动态填充多选下拉框——get属性

说明:客户类型不是固定的三四个,而是从另外一张客户类型表中查询出来列在这里的。换句话说:这个下了框是可变的,可能有1个类型,也可能有N个类型。

注明:这种方式,用户类型是存在系统全局变量或者缓存里面的。所以利用${allRoleJson}可以取到包装好的json格式的数据。

Action

//获得用户类型

   public String getAllRoleJson() {   

      /*String jsonStr = "[{ text: '--客户类型 (有效)--',id: "

        + -1+ " },";*/

      String jsonStr = "[";

      //根据状态查出客户类型

      for (CusType role : cusTypeManager.getAllCusTypeByStatus()) {

        jsonStr += "{ text: '" + role.getCustypename() + "',id: "

              + role.getCustypeid() + " },";

      }

      if (!jsonStr.equals("[")) {

        jsonStr = jsonStr.substring(0, jsonStr.length() - 1);

      }

      jsonStr += "]";

      return jsonStr;

   }

Service

@Transactional(readOnly = true)

    public List<CusType> getAllCusTypeByStatus(){

         String sql="SELECT ct.custypeid,ct.custypename,ct.validate FROM CusType ct where ct.validate <> 0";

         Query query = cusTypeDao.getSession().createSQLQuery(sql);

        //query.setParameter("materialid", typeid);

        List<CusType> result = new ArrayList<CusType>();

        if(query.list()!=null){

           List tmpList = query.list();

           for (Object tmp : tmpList) {

              Object[] obj = (Object[])tmp;

              CusType  adm = new CusType();

              adm.setCustypeid(StringValueUtils.getLong(obj[0].toString()));

              adm.setCustypename(obj[1].toString());

              result.add(adm);           

           }

           return result;

        }else{

           returnnull;

        }

    }

Dao

Jsp

<td><input type='text' name='type' id='type'  value='--客户类型 (全部)--' οnblur=\"if(this.value=='') value='--客户类型 (全部)--';\" οnfοcus=\"if(this.value=='--客户类型 (全部)--') value='';\" style='' οnchange=''/></td>

function f_setGrid()

        {

         //初始化客户类型

          var roleListJson="${allRoleJson[d1] }";

          roleListJson=eval("("+roleListJson+")");       

            roleManager=$("#type").ligerComboBox({

            data:roleListJson,

            width: 150,

            selectBoxWidth: 150,

            isMultiSelect: true,

            valueFieldID:"roleids"

            });       

            gridManager =  $("#maingrid").ligerGrid({

                columns: [

                { display: 'id', name: 'customid', align: 'left', width: 120, minWidth: 120,render:function(row){

                  return "<a href='#' οnclick='f_viewCustom("+row.customid+")'>"+row.customid+"</a>";

                } },

                { display: '名称', name: 'name', align: 'left', width: 150, minWidth: 150 },

                { display: '类型', name: 'type', minWidth: 120, render:function(row){

                   return row.cusType.custypename; 

                }},

                { display: '电话', name: 'customphone', minWidth: 50},

                { display: '地址', name: 'customaddress', align: 'left', width: 420 }               

                ], dataAction: 'server',enabledSort:false,

            url: "cusinformation!getList.action",

            toolbar: toolbarOptions,             

            sortName: 'loginName',

                parms: [{ name: "filter_LTI_status", value: "2"}],

           width: '100%', height: '100%', pageSize: 30,

                checkbox: true,rowHeight:25,

                heightDiff: -9,

                rownumbers :true,

                frozenRownumbers :false,

                frozenCheckbox : false,

                onError: function (a, b)

                {

                }

            }); 

        }


 [d1]这个el表达式里面的变量不是存在session或者缓存或者系统变量里面的。而是存在他的get属性里面的。

开始会不理解,jsp页面明明没有调用action里面的getAllRoleJson方法。也饿没有在json里面封装一个allRoleJson [d1]变量,也没有在session里面找到这个变量。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值