1. 程式人生 > >獲取EasyUI的treegrid的checkbox所有已勾選的資料

獲取EasyUI的treegrid的checkbox所有已勾選的資料

EasyUI為TreeGrid的已勾選節點未勾選節點只勾選部分子節點的父節點分別添加了三個不同的樣式,如下:
樣式一:tree-checkbox2 有子節點被選中
樣式二:tree-checkbox1 節點被選中
樣式三:tree-checkbox0 節點未選中

那麼,我們就可以依據這三個樣式分別取到所有已勾選的主鍵值了,為方便使用,我們寫成TreeGrid的擴充套件方法,程式碼如下:

$.extend($.fn.treegrid.methods, {
    //iscontains是否包含父節點(即子節點被選中時是否也取父節點)
    getAllChecked: function (jq, iscontains) {
        var keyValues = new Array();
        /*
          tree-checkbox2 有子節點被選中的css
          tree-checkbox1 節點被選中的css
          tree-checkbox0 節點未選中的css
        */
        var checkNodes = jq.treegrid("getPanel").find(".tree-checkbox1");
        for (var i = 0; i < checkNodes.length; i++) {
            var keyValue1 = $($(checkNodes[i]).closest('tr')[0]).attr("node-id");
            keyValues.push(keyValue1);
        }

        if (iscontains) {
            var childCheckNodes = jq.treegrid("getPanel").find(".tree-checkbox2");
            for (var i = 0; i < childCheckNodes.length; i++) {
                var keyValue2 = $($(childCheckNodes[i]).closest('tr')[0]).attr("node-id");
                keyValues.push(keyValue2);
            }
        }

        return keyValues;
    }
});
呼叫方法:
var kv = $("#XXX").treegrid("getAllChecked", true);
alert(kv);

另外,1.4.5版本以後的,提供如下幾個方法:

var kv = $("#XXX").treegrid("getCheckedNodes");  獲取勾選的節點
var kv = $("#XXX").treegrid("checkNode",id);  根據ID勾選節點
var kv = $("#XXX").treegrid("uncheckNode",id);  根據ID取消勾選節點