jqGrid treegrid 点击收缩不成功的解决

很长时间没用 jQuery 了, 今天用这个 jqGrid 插件, 真不顺手, 不知道哪里出了问题, 总是只能收缩2级, 第3级就不行了。

还是自己写收缩展开代码吧:

    function setTr(itemId) {
        setTrToggle($("#gridList span[AreaId = '" + itemId + "']").parents("tr"));
        var $trs = $("#gridList span[ParentId = '" + itemId + "']").parents("tr");
        if ($trs.length == 0)
            return;

        $trs.toggle().each(function () {
            setTrToggle(this);
            setTr($(this).find("span[AreaId]").attr("AreaId"));
        });
    }

    function setTrToggle(theTr) {
        var $div = $(theTr).find("div.treeclick");
        if ($div.length > 0) {
            if ($div.hasClass("glyphicon-triangle-bottom")) {
                $div.attr("class", "glyphicon glyphicon-triangle-right tree-plus treeclick");
            }
            else if ($div.hasClass("glyphicon-triangle-right")) {
                $div.attr("class", "glyphicon glyphicon-triangle-bottom tree-minus treeclick");
            }
        }
    }

    function gridList() {
        var $gridList = $("#gridList");
        $gridList.dataGrid({
            treeGrid: true,
            treeGridModel: 'adjacency',
            url: "/Area/GetGridJson",
            ExpandColumn: "Code",
            height: $(window).height() - 128,
            onSelectRow: function (rowid) {
            },
            colModel: [
                {
                    label: '主键', name: 'AreaId', hidden: true
                },
                {
                    label: 'ParentId', name: 'ParentId', width: 80, hidden: true, align: 'left', formatter: function (cellvalue, options, rowObject) {
                        return '<span ParentId="' + cellvalue + '" AreaId="' + rowObject.AreaId + '" >' + cellvalue + '</span>';
                    }
                },
                {
                    label: '名称', name: 'Name', width: 150, align: 'left',
                    formatter: function (cellvalue, options, rowObject) {
                        return '<a href="javascript:void(0)" onclick="setTr(' + rowObject.AreaId + ')">' + cellvalue + '</a>';
                    }
                },
                { label: '编码', name: 'Code', width: 80, align: 'left' },
                { label: 'Real编码', name: 'Realcode', width: 80, align: 'left' },
                { label: '深度', name: 'Depth', width: 80, align: 'left' },
                { label: '排序', name: 'OrderBy', width: 80, align: 'left' },
                {
                    label: "可用状态", name: "Release", width: 60, align: "left",
                    formatter: function (cellvalue, options, rowObject) {
                        if (cellvalue == 1) {
                            return '<span class=\"label label-success\">正常</span>';
                        } else if (cellvalue == 0) {
                            return '<span class=\"label label-default\">禁用</span>';
                        }
                    }
                },
                { label: '添加用户', name: 'InsertUserName', width: 80, align: 'left' },
                {
                    label: '添加时间', name: 'InsertTime', width: 80, align: 'left',
                    formatter: "date", formatoptions: { srcformat: 'Y-m-d', newformat: 'Y-m-d' }
                },
                { label: '修改用户', name: 'UpdateUserName', width: 80, align: 'left' },
                {
                    label: '修改时间', name: 'UpdateTime', width: 80, align: 'left',
                    formatter: "date", formatoptions: { srcformat: 'Y-m-d', newformat: 'Y-m-d' }
                }
            ]
        });

猜你喜欢

转载自blog.csdn.net/yenange/article/details/81031621