天天看點

通過easyui的datagrid向背景傳遞數組

場景:頁面需要選擇多個職稱,然後表格需要根據選擇的職稱查詢資料庫.

主要問題有:怎樣傳遞多個類型相同的值到背景

方法:頁面需要定義數組,将值存入數組進行傳遞,傳遞背景需要注意,這裡是數組是以@RequestParam則必須使用,并且value的值是數組形式,另外需要的注意的是,為了沒有選擇職稱的時候能夠預設的查詢資料庫的所有人員,則需要使用@RequestParam的default屬性,并且設的值也很關鍵,這裡因為是字元串數組接受參數,是以我們将預設值設定為空串.

頁面代碼:

script type="text/javascript">
    $('#btn').bind('click', function () {
        //定義一個數組
        var checkValues = new Array();
        //擷取頁面所有被選中的複選框,周遊複選框,然後擷取其中的值并存入定義的數組中
        $('input[name="certificates"]:checked').each(function () {
            checkValues.push($(this).val());
        });
        
        //讓資料表格帶着參數去查詢
        $('#dg').datagrid('load',{
            certificates: checkValues
        });

    });
</script>
           

背景代碼:

//擷取員工資訊,用于頁面展示
    @RequestMapping("showEmployees")
    @ResponseBody
    public Map<String, Object> showEmployees(Integer page, Integer rows,
                                            @RequestParam(value = "certificates[]",defaultValue = "") String[] certificates) {
        //調用service查詢資料
        PageInfo<Employee> pageInfo = null;
        if (certificates != null && certificates.length > 0) {
            pageInfo = employeeService.showEmployees(page, rows, certificates);
        }else {
            pageInfo = employeeService.showEmployees(page,rows);
        }
        Map<String, Object> map = new HashMap<>();
        map.put("total", pageInfo.getTotal());
        map.put("rows", pageInfo.getList());
        return map;
    }
           

繼續閱讀