SpingMVC、easyui 使用onBeforeExpand()方法异步加载树时,后台接收不到id。

这是前台的代码:已经成功出现树。
onBeforeExpand()方法中的url后已经拼上了id。id是有值的。

$(function() {
        $("#department")
                .tree(
                        {
                            url : "/department",
                            animate : true,
                            method : "GET",
                            loadFilter : function(data, parent) {
                                var arr = [];
                                var list = data.list;
                                for ( var i = 0; i < list.length; i++) {
                                    var doc = list[i];
                                    var item = {
                                        id : doc.id,
                                        text : doc.name,
                                        state : 'closed',
                                        employees : doc.employees
                                    };
                                    arr.push(item);
                                }
                                return arr;
                            },
                            onBeforeExpand : function(node) {
                                alert(node.id);
                                $('#department').tree('options').url = "/department?id="+ node.id;
                            },
                            onContextMenu : function() {
                                e.preventDefault();//阻止默认的事件,浏览器的右键菜单
                                $(this).tree('select', node.target);
                                $('#departmentMenu').menu('show', {
                                    left : e.pageX, //显示的位置
                                    top : e.pageY
                                });
                            }
                        });

    });

后台的代码:
点击树节点时,因为接收不到id,因此id值为0,于是又把所有的节点加载到了子节点下。

@RequestMapping(method = RequestMethod.GET)
    public Object queryListByParentId(@RequestParam(value = "id") String id,HttpServletRequest request) {

        // 返回的消息体
        Map<String, Object> map = new HashMap<String, Object>();
        //String id = request.getParameter("id"); // 部门ID

        List<Department> list = departmentService.findByPId(id);
    if (null == list || list.isEmpty()) {
            return toResponseEntity(404, map);
        }
        
        map.put("list", list);
        return toResponseEntity(200, map);
    }
阅读 5.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题