多选框事件

 <div class="control-group span6" style="display: inline">
     <div id="positionCodeDiv">
          <label class="control-label" for="positionCode">库位编码:</label>
               <div class="controls">
                   <div class="span12 required">
                      <input type="text" id="positionCode" name="positionCode">
                   </div>
               </div>
      </div>
 </div>

$("#positionCode").select2({
        placeholder: "--请选择库位--",
        minimumInputLength: 0, //至少输入n个字符,才去加载数据
        allowClear: true, //是否允许用户清除文本信息
        delay: 250,
        formatNoMatches: "没有结果",
        formatSearching: "搜索中...",
        formatAjaxError: "加载出错啦!",
        multiple: true,   //true为多选  false为单选
        ajax: {
            url: context_path + "/inventoryTask/getSelectPositionCode",
            type: "POST",
            dataType: "json",
            delay: 250,
            data: function (term, pageNo) { //在查询时向服务器端传输的数据
                term = $.trim(term);
                return {
                    baseStationName: term, //联动查询的字符
                    positionCode: $("#positionCode").val()
                }
            },
            results: function (data, pageNo) {
                var res = data.result;
                if (res.length > 0) { //如果没有查询到数据,将会返回空串
                   var more = (pageNo * 15) < data.total; //用来判断是否还有更多数据可以加载
                    return {
                        results: res,
                        more: more
                    };
                } else {
                    return {
                        results: {}
                    };
                }
            },
            cache: true
        }
    });

   //修改时加载库位信息
    if ('${inventoryTask.id}') {
        // 用户赋值
        $.ajax({
            url: context_path + "/inventoryTask/getPositionInfo",
            type: "post",
            dataType: "JSON",
            data: {
                positionCodes: '${inventoryTask.positionCode}'
            },
            async: false,
            success: function (data) {
                if (data) {
                    var obj = [];
                    for (let i = 0; i < data.length; i++) {
                        obj.push({
                            id: data[i].userId,
                            text: data[i].name
                        });
                    }
                    $("#positionCode").select2("data", obj);
                }
            }
        });
    }



     //后台controller层
     /**
     * 获取库位下拉数据
     *
     * @param positionCode
     * @return Map
     * @author pz
     * @date 2019-03-15
     */
    @RequestMapping(value = "/getSelectPositionCode")
    @ResponseBody
    public Map<String, Object> getSelectPositionCode(String positionCode) {
        Map<String, Object> map = new HashMap<>();

        List<Stock> lstStock=stockDAO.uniqeList(null);
        JSONArray arr = new JSONArray();
        JSONObject obj = null;
        for (Stock s : lstStock) {
            obj = new JSONObject();
            // 库位编码
            obj.put("id", s.getPositionCode());
            // 库位名称
            obj.put("text", s.getPositionCode());
            arr.add(obj);
        }

        // 根据条件获取已添加的库位信息
        if (StringUtils.isNotBlank(positionCode)) {
            Map<String, Object> sceneMap = new HashMap<>();
            sceneMap.put("position_code", positionCode);
            List<Stock> stockList = stockService.selectByMap(sceneMap);
            if (stockList != null && stockList.size() > 0) {
                for (Stock s : stockList) {
                    obj = new JSONObject();
                    obj.put("id", s.getPositionCode());
                    obj.put("text", s.getPositionCode());
                    arr.add(obj);
                }
            }
        }
        map.put("result", arr);
        return map;
    }

    /**
     * 获取库位信息(修改时,库位下拉框赋值使用)
     *
     * @return
     * @author pz
     * @date 2019-03-15
     */
    @RequestMapping(value = "/getPositionInfo")
    @ResponseBody
    public JSONArray getPlatformInfo(String positionCodes) {
        JSONArray arr = new JSONArray();
        JSONObject obj = null;
        Map<String, Object> map = new HashMap<>();
        //lambl表达式
        List<String> lstPositionCodes = Arrays.stream(positionCodes.split(",")).collect(Collectors.toList());

        List<Stock> lstStock=stockDAO.uniqeList(lstPositionCodes);
        if (lstStock != null && lstStock.size() > 0) {
            for (Stock s : lstStock) {
                obj = new JSONObject();
                obj.put("userId", s.getPositionCode());
                obj.put("name", s.getPositionCode());
                arr.add(obj);
            }
        }
        return arr;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tkinter是Python的标准GUI库,用于创建图形用户界面。Tkinter中的多选框是一种用户界面元素,允许用户从多个选项中选择一个或多个选项。 在Tkinter中,多选框被称为Checkbutton。可以使用Checkbutton类来创建多选框。以下是使用Tkinter创建多选框的基本步骤: 1. 导入Tkinter模块: ```python import tkinter as tk ``` 2. 创建主窗口: ```python root = tk.Tk() ``` 3. 创建多选框: ```python checkbox1 = tk.Checkbutton(root, text="Option 1") checkbox2 = tk.Checkbutton(root, text="Option 2") ``` 4. 显示多选框: ```python checkbox1.pack() checkbox2.pack() ``` 5. 进入主事件循环: ```python root.mainloop() ``` 以上代码将创建两个多选框,分别显示为"Option 1"和"Option 2"。用户可以通过点击多选框来选择或取消选择选项。 你还可以使用变量来跟踪多选框的状态。例如,可以使用IntVar类来创建一个整数变量,并将其与多选框关联起来。当多选框被选中时,该变量的值将被设置为1;当多选框未被选中时,该变量的值将被设置为0。 以下是一个示例代码,演示了如何使用变量来跟踪多选框的状态: ```python import tkinter as tk def show_selection(): if var1.get() == 1: print("Option 1 selected") if var2.get() == 1: print("Option 2 selected") root = tk.Tk() var1 = tk.IntVar() var2 = tk.IntVar() checkbox1 = tk.Checkbutton(root, text="Option 1", variable=var1, command=show_selection) checkbox2 = tk.Checkbutton(root, text="Option 2", variable=var2, command=show_selection) checkbox1.pack() checkbox2.pack() root.mainloop() ``` 在上面的示例中,当用户选择或取消选择多选框时,show_selection函数将被调用。函数根据多选框的状态打印相应的消息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值