Extjs Ext.TreePanel

TreePanel 简单实例。

 <link  rel="stylesheet"  href="Js/ext-4.2/resources/css/ext-all-neptune.css"/>
    <script src="Js/jQuery/jquery-1.8.2.min.js" type="text/javascript"></script>
    <script src="Js/ext-4.2/ext-all-dev.js" type="text/javascript"></script> 

    <script type="text/javascript">

        var tree;
        $(document).ready(function() {

            //Ext.create(‘Ext.tree.Panel‘, {  });

            tree = new Ext.tree.TreePanel({
                renderTo: ‘tree1‘,
                title: ‘Simple Tree‘,
                multiSelect: true,
                width: 200,
                height: 450,
                viewConfig: {
                    onCheckboxChange: function(e, t) {
                        var item = e.getTarget(this.getItemSelector(), this.getTargetEl()), record;

                        if (item) {
                            record = this.getRecord(item);
                            var check = !record.get(‘checked‘);
                            //getSelectedNodes()
                            record.set(‘checked‘, check);
                            if (check) {
                                record.bubble(function(parentNode) {
                                    parentNode.set(‘checked‘, true);
                                });
                                record.cascadeBy(function(node) {
                                    node.set(‘checked‘, true);
                                });
                                //                                record.expand();  联动效果 自动收起 自动展开
                                //                                record.expandChildren();
                            } else {
                                //                                record.collapse();
                                //                                record.collapseChildren();
                                record.cascadeBy(function(node) {
                                    node.set(‘checked‘, false);
                                });
                                record.bubble(function(parentNode) {
                                    var childHasChecked = false;
                                    var childNodes = parentNode.childNodes;
                                    if (childNodes || childNodes.length > 0) {
                                        for (var i = 0; i < childNodes.length; i++) {
                                            if (childNodes[i].data.checked) {
                                                childHasChecked = true;
                                                break;
                                            }
                                        }
                                    }
                                    if (!childHasChecked) {
                                        parentNode.set(‘checked‘, false);
                                    }
                                });

                            }
                        }
                    }
                },
                root: {
                    text: ‘Root‘,
                    expanded: true, //是否展开子节点,默认为false
                    checked: true,
                    children: [
                                { id: ‘1‘, text: ‘Child 1‘, checked: true, leaf: true },
                                { id: ‘2‘, text: ‘Child 2‘, checked: true, leaf: true },
                                { id: ‘3‘, text: ‘Child 3‘, checked: true, expanded: true, children: [{ id: ‘4‘, text: ‘Grandchild‘, checked: true, leaf: true}] }
                              ]
                }
            });

            //窗体
            var win = new Ext.Window({
                title: ‘窗口‘,
                width: 476,
                height: 574,
                resizable: true,
                modal: true,
                closable: true,
                maximizable: true,
                minimizable: true,
                items: tree
            });
            win.show();

            var attr = tree.getChecked();

            for (var le = 0; le < attr.length; le++) {
                var json = eval(attr[le].getData());            json.text;
            }

        }); </script>
root:是树的根节点。
checked: true 树有选择框。
onCheckboxChange:设置树连及效果,父级选中后 所有子集也全部选中。
getChecked():获取所有选择的 树节点数据。
getChecked()下的getData()获取每个节点的数据 。
时间: 2024-10-05 01:47:51

Extjs Ext.TreePanel的相关文章

ext:TreePanel 动态添加和单击事件

<ext:TreePanel ID="UserTreePanel" runat="server" Title="用户结构图" AutoHeight="true" Border="false"> <Listeners> <BeforeLoad Fn="nodeLoad" /> <Click Handler="clickTree1(node

Extjs &amp; Ext.net中的一些属性

Extjs & Ext.Net 弹出整个浏览器对话框的方法 top.Ext.Msg.alert("值"); top.Ext.Msg.confirm("值"); top.Ext.Msg.notify("值"); Ext.getCmp("控件ID").setText("值");  //设置控件的Text值 Ext.getCmp("控件ID").setValue("值&quo

Extjs Ext.onReady的用法

最近在学习Extjs,当然首先学习的肯定是从官网下载下来的example. 从学习上而言对于Extjs,我个人认同的是李林峰老师所言先从视图开始,搞一些所见即所得的东西. 废话有点多,对于Extjs而言个人认为最初需要弄明白的函数就是 Ext.onReady函数. onReady方法在页面完毕(onload方法被调用之前以及图片被装载之前)调用初始化函数. 在API中是如此定义onReady方法: onReady( Function fn, Object scope, Boolean withD

ExtJS Ext.Ajax.request最好设为同步

ExtJS 中Ext.Ajax.request最好设为同步,即async: false,因为如果Ajax后面需要用到Ajax更新的数据的话,设置同步,后面才能用到最新的数据. function GetPatientOrder() { Ext.Ajax.request({ url: '/CommonAshx/Order.ashx', method: 'get', async: false, params: { gurd: "GetOrder", patientCardNo: Ext.ge

extjs中treepanel属性和方法

1.Ext.tree.TreePanel 主要配置项: root:树的根节点.rootVisible:是否显示根节点,默认为true.useArrows:是否在树中使用Vista样式箭头,默认为false.lines:是否显示树线,默认为true.loader:树节点的加载器,默认为Ext.tree.TreeLoader. selModel:树的选择模式,默认为Ext.tree.DefaultSelectionModel.pathSeparator:树节点路径的分隔符,默认为“/”.single

Extjs Ext.grid.column.Column 自适应内容

var griddb = Ext.ComponentQuery.query("Ali_DeliveryAuthorityList"); griddb = griddb[griddb.length - 1]; var store = Ext.getStore("DeliveryAuthorityStore"); store.proxy.extraParams = obj; store.loadPage(1 , { scope: this, callback: func

分享一个递归无限级拼接Json的方法---ExtJs的TreePanel和TreeGrid均适用(Ef,Lambda,Linq,IQueryable,List)

话不多说,先上实体类,如果你不是codefirst,就把它当成数据表结构. 下面是底层BaseDal获取数据的方法  (如果你没有Base类,直接写在你的DAL层和BLL层) 下面是BaseService的方法 下面方法用于拼接字符串 主体方法-- 1 /// <summary> 2 /// 得到树TreePanel的Json 3 /// </summary> 4 /// <returns></returns> 5 public string GetAllL

[extjs] ExtJS4 treepanel 子节点选中父节点自动选中,选中父节点 子节点自动全部选中

ExtJS4 treepanel 主要添加viewConfig重的代码: xtype:'treepanel', store: menuStore, id:'menuTreePanel', viewConfig : { //checkbox联动 onCheckboxChange : function(e, t) { var item = e.getTarget(this.getItemSelector(), this.getTargetEl()), record; if (item){ recor

extjs Ext.Ajax.request 同步和异步

ext3.x 不支持ajax的同步请求,ext4就开始支持. 1 Ext.Ajax.request({ 2 url : '', 3 sync:true, 4 params : { 5 name : text.getValue() 6 }, 7 success : function(response, options) { 8 var responseArray = Ext.util.JSON.decode(response.responseText); 9 resultValue=respons