select2的ajax的应用

html:

<!DOCTYPE html>
<html>
	<head>
		<link href="../Portal/static/assets/css/select2.css" rel="stylesheet"/>
     		<script src="../Portal/static/assets/js/select2.js"></script>
     		<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script><!--jQuery-->
	</head>
	<body>
		<select style="width: 186px;" name="cargo_code_search" id="cargo_code_search">
	         </select>
	</body>
	<script type="text/javascript">
	$(function(){    
            var placeholder = "请选择";
            $("#cargo_code_search").select2({
              ajax: {
                  type:'POST',
                  url: "/makeUpMass_num?mass_sel=18110105",
                  dataType: 'json',
                  delay: 250,
                  data: function (params) {
                      return {
                          q: params.term, // search term 请求参数 , 请求框中输入的参数
                          page: params.page
                      };
                  },
                  processResults: function (data, params) {
                      params.page = params.page || 1;
                      return {
                          results: data,//itemList
                          pagination: {
                              more: (params.page * 30) < data.total_count
                          }
                      };
                  },
                  cache: true
              },
              placeholder:'请选择',//默认文字提示
              language: "zh-CN",
              tags: true,//允许手动添加
              allowClear: true,//允许清空
              escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
              minimumInputLength: 0,//最少输入多少个字符后开始查询
              formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
              formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
            });
        });
 	</script>
 </html>

Controller:

@RequestMapping(value = "/makeUpMass_num")
@ResponseBody
public void makeUpMass_num(HashMap map,HttpServletRequest request, HttpServletResponse response,HttpSession httpSession) {
   response.setContentType("application/json;charset=utf-8");
	   Gson gson = new Gson();
	   HashMap hashMap=new HashMap();
	   List<HashMap> dataList= new ArrayList<HashMap>();
	   String mass_sel=request.getParameter("q")==null?"":request.getParameter("q");
	   int first=mass_sel.indexOf("-");
	   int zonglength=mass_sel.length();
	   int end= mass_sel.indexOf("-",first+1);
	   int masslength=end-first;
	   int other=zonglength-first;
	   String scn="";
	   if(first>0&&(masslength==9||(masslength<0&&other==9))) {
	    scn = mass_sel.substring(first+1, first+9);
	    hashMap.put("scn", scn);
	          dataList = massManageService.makeUpMass_num(hashMap);
	   }
	   PrintWriter out;
	   try {
	    out = response.getWriter();
	   } catch (IOException e) {
	    e.printStackTrace();
	   }
	   List<Map<String, String>> res = new ArrayList<>();
	   if(dataList.size()>0) {
	    for (int i = 0; i < dataList.size(); i++) {
	     Map<String, String> tmp = new HashMap<>();
	     if(masslength<0){
	      scn=mass_sel;
	     }else{
	      scn=mass_sel.substring(0,end);
	     }
	     String tmpS= scn+","+dataList.get(i).get("shipname")+","+dataList.get(i).get("cargo_name");
	     if(tmpS.contains(mass_sel)){
	      tmp.put("id", tmpS);
	      tmp.put("text", tmpS);
	      res.add(tmp);
	     }
	    }
	   }else {
	    Map<String, String> tmp = new HashMap<>();
	    tmp.put("id", "");
	    tmp.put("text", "");
	    res.add(tmp);
	   }
	   
	   try {
	    out = response.getWriter();
	    out.println(gson.toJson(res));
	    out.close();
	   } catch (IOException e) {
	    e.printStackTrace();
	   }
}

涉及到的jar包:https://download.csdn.net/download/zcaixx/10975962

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Bootstrap Select2是一个基于jQuery的自定义下拉选择插件,可以让用户在一个优雅的界面中选择数据。 树形下拉是Bootstrap Select2的一个特殊功能,它允许我们将数据以树形结构展示在下拉框中,方便用户快速选择和搜索。 使用Bootstrap Select2树形下拉,首先需要引入Select2的库文件和相关样式。然后在HTML中创建一个下拉菜单的元素,并为其添加一个自定义的class。接下来,需要通过JavaScript来配置Select2插件。 配置Select2的时候,我们需要同时传入数据源以及一些额外的配置选项。对于树形下拉的数据源,我们可以使用一个以JSON对象的形式表示的树状结构。 例如,下面是一个简单的JSON对象,表示一个带有"节点1"和"节点2"的树形结构: { "id": 1, "text": "节点1", "children": [ { "id": 2, "text": "节点2" } ] } 在配置Select2的时候,我们可以用ajax方法获取这个JSON数据,并将其传入"data"选项中。 除了数据源外,我们还可以通过配置选项调整下拉框的外观和功能。例如,可以启用搜索功能,使用户能够在下拉框中快速查找节点。 最后,我们需要通过JavaScript来初始化Select2插件并将其应用到我们创建的下拉菜单元素上。 在使用过程中,用户可以通过点击下拉框,展开或折叠树形结构。他们可以通过输入关键字来搜索节点,并选择他们想要的节点。 总结起来,Bootstrap Select2树形下拉是一个强大的工具,可以方便地在界面上展示和搜索树状数据。这个功能可以通过合适的JSON数据源和一些配置选项来实现。同时,用户可以通过点击和搜索来选择他们想要的节点。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值