select2 的加载远程数据

select2 加载远程数据的代码如下:

function initGlfl() {
        var mapping = document.getElementById("zj").value;
        $("#glfl").select2(
                        {
                            placeholder : "请选择内容",//文本框的提示信息  
                            minimumInputLength : 0, //至少输入n个字符,才去加载数据  
                            allowClear : true, //是否允许用户清除文本信息  
                            ajax : {
                                url : "${ctx}/group/odsGbt4754Mapping/getFieldLst?mapping="
                                        + mapping, //地址  
                                dataType : 'text', //接收的数据类型  
                                // type: "POST",
                                //contentType:'application/json',  
                                data : function(term, pageNo) { //在查询时向服务器端传输的数据  
                                    term = $.trim(term);
                                    return {
                                        autNumber : term, //联动查询的字符  
                                        pageSize : 15
                                    //一次性加载的数据条数  

                                    }
                                },
                                results : function(data) {
                              
                                    if (data.length > 0) { //如果没有查询到数据,将会返回空串  
                                        var dataObj = eval("(" + data + ")"); //将接收到的JSON格式的字符串转换成JSON数据  
                                        var more = (1 * 15) < dataObj.total; //用来判断是否还有更多数据可以加载  
                                        return {
                                            results : dataObj.result,
                                            more : more
                                        };
                                    } else {
                                        return {
                                            results : data
                                        };
                                    }
                                }
                            },
                            initSelection : function(element, callback) {
                                //初始化,其中doName是自定义的一个属性,用来存放text的值  
                                var id = $(element).val();      
                                if (id==glflId) {
                                    callback({
                                        id : glflId,
                                        text : glflText
                                    });
                                }
                            } 
                        // formatResult: formatAsText  //渲染查询结果项  
                        });
 

需要注意的点:初始化方法  initSelection : function(element, callback)  会由$("#glfl").val(glflId).trigger("change");触发,后执行callback 方法,

如果想取消触发初始化方法则用:$("#glfl").val(null).trigger("change");

 

另外select2 标签定义为:<input id="glfl" name="glfl" class="input-medium" />

 

select2 取 text 值的方法

function convertText(sid){
        var obj= $(sid).select2('data');
           var tValue ="";
           if(obj!=null){
               tValue = obj.text;
           }
           return tValue;
    }

 

select2 ,取id值的方法

 $(sid).val() 

 

后台的方法返回数据格式

@RequiresPermissions("user")
    @ResponseBody
    @RequestMapping(value = "getFieldLst")
    public Object getFieldLst(@RequestParam(value="mapping") String mapping) {
        //List<Map<String, Object>> mapList = Lists.newArrayList();
        String category = DictUtils.getDictLabel(mapping,
                "jcfx_field_category", null);
        OdsGbt4754Mapping odsGbt4754Mapping = new OdsGbt4754Mapping();
        odsGbt4754Mapping.setMapping(category);
        List<OdsGbt4754Mapping> list = odsGbt4754MappingService.findFields(odsGbt4754Mapping);
        List<Map<String,String>> mLst = new ArrayList<Map<String,String>>();
        for (OdsGbt4754Mapping o: list){
            Map<String, String> map = new HashMap<String, String>();
            map.put("id", o.getCode());
            map.put("text", o.getCodeValue());
            mLst.add(map);
        }
        JSONArray jsonArray = JSONArray.fromObject(mLst);

        JSONObject user_json = new JSONObject();
        user_json.put("total", list.size());

        user_json.put("result", jsonArray);
        String s = user_json.toString();

        return s;
        
    }

转载于:https://my.oschina.net/u/2425942/blog/752760

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值