• 基于jQuery的TreeGrid组件详解


    一、TreeGrid组件相关的类

          1、TreeGrid(_config)

                _config:json格式的数据,组件所需要的数据都通过该参数提供。

          2、TreeGridItem(_root, _rowId, _rowIndex, _rowData)

                _root:显示组件实例的目标容器对象。

                _rowId:选中行的id。

                _rowIndex:选中行的索引。

                _rowData:json格式的行数据。

    二、_config参数详解

           id:组件实例的id。

           width:组件实例的宽度。

           renderTo:用于显示组件实例的容器对象的id。一般用div作为容器。

           headerAlign:标题行的对齐方式。

           headerHeight:标题行的高度。

           dataAlign:数据行的对齐方式。

           indentation:层级缩进量。 

           folderColumnIndex:显示图标的数据列的索引,从0开始。

           folderOpenIcon:节点展开时的图标。

           folderCloseIcon:节点关闭时的图标。

           defaultLeafIcon:叶节点的图标。

           hoverRowBackground:鼠标滑过数据行时,背景色是否改变。

           itemClick:单击数据行后触发的事件。事件方法包含三个参数,分别是:行的id、行的索引、行数据。

           expandLayer:初始展开层数,默认只展开第1层。

           columns:值为数组,数组元素为json对象。定义数据栏相关信息。

                   数组元素的属性:

                            headerText:栏的标题。

                            dataField:栏数据对应的字段名。

                            headerAlign:栏头对齐方式。

                            dataAlign:栏数据对齐方式。

                            width:栏的宽度。

                            handler:通过指定的方法来自定义栏数据。

                            folderHidden:在文件夹行隐藏单元格值。

           data:组件的数据集。

    三、TreeGrid的方法

          show:显示填充数据后的组件对象。

          expandAll:展开、关闭所有节点。该方法有一个参数,参数值为Y时表示展开,参数值为N时表示关闭。

          getSelectedItem:获取当前选中的数据行,返回TreeGridItem对象。

    四、TreeGridItem组件

           1、组件属性

                  id:数据行的id。

                  index:数据行的索引。

                  data:json格式的行数据。

           2、组件方法

                  getParent:获取父数据行。方法返回TreeGridItem对象。

                  getChildren:获取子数据行集。方法返回一个数组,数组元素为TreeGridItem对象。

    五、组件使用范例

    Html代码  收藏代码
    1. <input type="button" value="关闭所有节点" onclick="expandAll('N')">  
    2. <input type="button" value="展开所有节点" onclick="expandAll('Y')">  
    3. <input type="button" value="取得当前行的数据" onclick="selectedItem()"><br>  
    4. 当前选中的行:<input type="text" id="currentRow" size="110">  
    5.   
    6. <div id="div1"></div>   
    Js代码  收藏代码
    1. <script language="javascript">  
    2.     var config = {  
    3.         id: "tg1",  
    4.          "800",  
    5.         renderTo: "div1",  
    6.         headerAlign: "left",  
    7.         headerHeight: "30",  
    8.         dataAlign: "left",  
    9.         indentation: "20",  
    10.         folderOpenIcon: "images/folderOpen.gif",  
    11.         folderCloseIcon: "images/folderClose.gif",  
    12.         defaultLeafIcon: "images/defaultLeaf.gif",  
    13.         hoverRowBackground: "false",  
    14.         folderColumnIndex: "1",  
    15.         itemClick: "itemClickEvent",  
    16.         expandLayer: 1,  
    17.         columns:[  
    18.             {headerText: "", headerAlign: "center", dataAlign: "center",  "20", handler: "customCheckBox"},  
    19.             {headerText: "名称", dataField: "name", headerAlign: "center", handler: "customOrgName"},  
    20.             {headerText: "拼音码", dataField: "code", headerAlign: "center", dataAlign: "center",  "100"},  
    21.             {headerText: "负责人", dataField: "assignee", headerAlign: "center", dataAlign: "center",  "100"},  
    22.             {headerText: "查看", headerAlign: "center", dataAlign: "center",  "50", handler: "customLook", folderHidden: true}  
    23.         ],  
    24.         data:[  
    25.             {name: "城区分公司", code: "CQ", assignee: "", children:[  
    26.                 {name: "城区卡品分销中心"},  
    27.                 {name: "先锋服务厅", children:[  
    28.                     {name: "chlid1"},  
    29.                     {name: "chlid2"},  
    30.                     {name: "chlid3", children: [  
    31.                         {name: "chlid3-1"},  
    32.                         {name: "chlid3-2"},  
    33.                         {name: "chlid3-3"},  
    34.                         {name: "chlid3-4"}  
    35.                     ]}  
    36.                 ]},  
    37.                 {name: "半环服务厅"}  
    38.             ]},  
    39.             {name: "清新分公司", code: "QX", assignee: "", children:[]},  
    40.             {name: "英德分公司", code: "YD", assignee: "", children:[]},  
    41.             {name: "佛冈分公司", code: "FG", assignee: "", children:[]}  
    42.         ]  
    43.     };  
    44.   
    45.     /* 
    46.         单击数据行后触发该事件 
    47.         id:行的id 
    48.         index:行的索引。 
    49.         data:json格式的行数据对象。 
    50.     */  
    51.     function itemClickEvent(id, index, data){  
    52.         jQuery("#currentRow").val(id + ", " + index + ", " + TreeGrid.json2str(data));  
    53.     }  
    54.       
    55.     /* 
    56.         通过指定的方法来自定义栏数据 
    57.     */  
    58.     function customCheckBox(row, col){  
    59.         return "<input type='checkbox'>";  
    60.     }  
    61.   
    62.     function customOrgName(row, col){  
    63.         var name = row[col.dataField] || "";  
    64.         return name;  
    65.     }  
    66.   
    67.     function customLook(row, col){  
    68.         return "<a href='' style='color:blue;'>查看</a>";  
    69.     }  
    70.   
    71.     //创建一个组件对象  
    72.     var treeGrid = new TreeGrid(config);  
    73.     treeGrid.show();  
    74.       
    75.     /* 
    76.         展开、关闭所有节点。 
    77.         isOpen=Y表示展开,isOpen=N表示关闭 
    78.     */  
    79.     function expandAll(isOpen){  
    80.         treeGrid.expandAll(isOpen);  
    81.     }  
    82.       
    83.     /* 
    84.         取得当前选中的行,方法返回TreeGridItem对象 
    85.     */  
    86.     function selectedItem(){  
    87.         var treeGridItem = treeGrid.getSelectedItem();  
    88.         if(treeGridItem!=null){  
    89.             //获取数据行属性值  
    90.             //alert(treeGridItem.id + ", " + treeGridItem.index + ", " + treeGridItem.data.name);  
    91.               
    92.             //获取父数据行  
    93.             var parent = treeGridItem.getParent();  
    94.             if(parent!=null){  
    95.                 //jQuery("#currentRow").val(parent.data.name);  
    96.             }  
    97.               
    98.             //获取子数据行集  
    99.             var children = treeGridItem.getChildren();  
    100.             if(children!=null && children.length>0){  
    101.                 jQuery("#currentRow").val(children[0].data.name);  
    102.             }  
    103.         }  
    104.     }  
    105. </script>  

      

     
  • 相关阅读:
    Lucene 全文检索入门
    Elastic Stack 笔记(九)Elasticsearch5.6 集群管理
    Elastic Stack 笔记(八)Elasticsearch5.6 Java API
    Elastic Stack 笔记(七)Elasticsearch5.6 聚合分析
    Elastic Stack 笔记(六)Elasticsearch5.6 搜索详解
    Elastic Stack 笔记(五)Elasticsearch5.6 Mappings 映射
    JAVA中的static
    类继承和初始化类的执行顺序
    java继承 初始化顺序
    分析java类的初始化契机
  • 原文地址:https://www.cnblogs.com/ranran/p/3759633.html
Copyright © 2020-2023  润新知