0 0

Ext可选树,部分节点展不开5

组成树菜单的数据由后台加载,其可选,可展开,是否为叶子属性后台可控制,现在问题时,数据全部加载出来,不知为何,但有两个菜单不能展开?如图:



//加载数据的方法
/**
	 * 1.首先根据系统管理员加载菜单列表以及末级菜单下的功能列表
	 * 2.根据当前角色来选中(勾选)当前拥有的菜单和功能
	 */
	public ActionResult getFunTreeByRid(int adminRoleId,int currentRoleId) throws Exception
	{
		List<Menu> firstMList=new ArrayList<Menu>();
		List<Menu> secondMList=new ArrayList<Menu>();
		List<Functions> thirdMList=new ArrayList<Functions>();
		
		//一级菜单列表
		firstMList = menuDAO.listRoleMenu(adminRoleId,currentRoleId,"Y", "N");
		List<RolesTreeNode> menuTree=new ArrayList<RolesTreeNode>();
		for(int i=0;i<firstMList.size();i++)
		{
			Menu m1 = (Menu) firstMList.get(i);
			RolesTreeNode node = new RolesTreeNode(m1.getMenuName(),m1.getId().toString(),
					null,true,false,m1.isChecked());
			
			//二级级菜单列表
			secondMList = menuDAO.listSubRoleMenu(adminRoleId,currentRoleId,m1.getId(),"N", "Y");
			for(int j=0;j<secondMList.size();j++)
			{
				Menu m2 = (Menu) secondMList.get(j);
				RolesTreeNode node2 = new RolesTreeNode(m2.getMenuName(),m2.getId().toString(),
						null,true,false,m2.isChecked());
				
				//末级菜单下的功能(根据菜单id查询此菜单下的功能)
				
thirdMList = functionsDAO.listFuncs(adminRoleId, currentRoleId, m2.getId());

for (int k=0;k<thirdMList.size();k++)
{
Functions f = (Functions) thirdMList.get(k);
RolesTreeNode node3 = new RolesTreeNode(f.getFuncName(),f.getId().toString(),
null,false,true,f.isChecked());

node2.getChildren().add(node3);
}
node.getChildren().add(node2);
}
menuTree.add(node);
}
result.setMessage(ExtHelper.getJsonFromArray(menuTree));
return result;
}

//控制树节点的java类部分代码
private String text;
	private String iconCls;
	private String id;
	private boolean expanded;
	private boolean leaf;
	private boolean checked;
	private List<RolesTreeNode> children = new ArrayList<RolesTreeNode>();
	public RolesTreeNode() {}
	
	//树菜单文字,树菜单id,树菜单图标,是否展开,是否叶子,是否勾选
	public RolesTreeNode(String text,String id,String iconCls,boolean expanded,boolean leaf,boolean checked) {
		this.text = text;
		this.id = id;
		this.iconCls = iconCls;
		this.expanded = expanded;
		this.leaf = leaf;
		this.checked=checked;
	}


//ext树菜单代码
//功能列表设置--win
	var rolesTreeloader = new Ext.tree.TreeLoader({});//加载数节点
	var roles_tree = new XTreePanel({
    	iconCls: 'content',
    	title : '角色功能设置',	
    	id: 'tree-panel1',  	
		layout: 'fit',
        region:'west',  	
        rootVisible: false,
        lines: false,
        singleExpand: true,
        useArrows: true,
        loader : rolesTreeloader,
        root: new Ext.tree.AsyncTreeNode(),
        autoScroll: true,          
        split:true,
		margins: '2 0 2 5',
        width: 450,
        minSize: 530,
		collapsible: true,//,
		listeners: {
            'checkchange': function(node, checked){selParent(node, checked);selChild(node, checked);}
        }
    });	
2013年7月01日 16:56
  • 大小: 49.1 KB

1个答案 按时间排序 按投票排序

0 0

菜单和菜单组的id是不是有重复的?

2013年7月10日 15:51

相关推荐

    Ext TreePanel Checked Ext复选框树

    在描述中提到的"Ext TreePanel Checked Ext复选框树"是指`TreePanel`的一种特殊形式,它扩展了基本的树视图,加入了复选框功能。 复选框树(Checked Tree)允许用户通过复选框来选择或取消选择树结构中的节点。这种...

    Ext 两种树形菜单

    5. **扩展和插件**:如果默认的树形菜单功能无法满足需求,可以利用Ext JS的可扩展性,开发自定义插件或扩展已有的组件。 6. **CSS样式**:通过CSS,你可以调整树形菜单的外观,包括节点的字体、颜色、边框、背景等...

    ext4.2 目录树

    由于项目的需要最近在学习ext,在项目中必不可少用到了tree,并且要对tree进行增、改、删的操作。上网找了很多不错的学习资料把这些功能组织在一起。在学习ext的过程中花了不少时间,我想很多网友刚开始学习ext的...

    ext 级联选择的树形控件

    2. **复选框(check)**:在每个节点上添加复选框,用户可以通过勾选或取消勾选来选择或取消选择节点。这些选择状态可以传递到其子节点,实现级联效果。 3. **级联行为**:当一个节点被选中或取消选中时,其所有子...

    ext树的控制选择和撤销,可以直接使用

    1. **选择模式**:EXT树支持多种选择模式,例如`single`(单选)、`multi`(多选)和`checkable`(可勾选)。通过设置`selModel`属性,可以改变树的默认选择行为。例如,`selModel: { type: 'checkbox' }`将启用勾选...

    ExtTreePanel新增节点

    iconCls: 'someIconClass' // 可选,为节点设置图标类 }); ``` 4. **插入节点** 插入新节点有两种方式: - **插入到指定位置**:使用`insertNode`方法,需要提供父节点、新节点及插入位置的索引。 ```...

    Extjs4下拉树菜单ComboBoxTree支持单选和多选并且支持展开选中指定节点的通用控件

    要实现单选功能,ComboBoxTree可能使用了Ext.selection.Model类,通过配置singleSelect选项来限制用户只能选择一个节点。单击一个节点时,其他已选中的节点将被自动取消选中。这在需要用户做出唯一选择的场景中非常...

    Ext JS 树

    节点可以通过配置对象创建,包括文本、图标、是否可选以及子节点等属性。 2. **模型(TreeModel)**:树的数据模型定义了树中节点的结构和字段。它可以是简单的数组,也可以是Ext.data.TreeStore,它继承自Ext.data...

    我搜集来的关于ext树的材料

    在权限管理中,EXT树经常需要配合复选框功能,以便用户可以选择或取消选择节点。EXT提供了`CheckboxNodeUI`来实现这一特性,每个节点都可以关联一个复选框。在Faceye的示例中,当节点的复选框状态改变时,会触发`...

    Ext动态树的生成,后台是JSP

    通过设置`draggable`、`droppable`等属性,可以实现节点拖放功能,创建可交互的树形结构。 10. **UI样式** ExtJS提供了丰富的样式配置,可以通过修改CSS或使用预定义的主题来自定义树的外观。 总结,结合ExtJS和...

    EXT tree 使用 实例 最新

    EXT Tree 是一个强大的JavaScript组件,它是EXT JS框架的一部分,用于构建可交互的树形数据结构。EXT Tree在网页中常用于展示层次结构的数据,如文件系统、组织结构或导航菜单等。EXT Tree提供了丰富的功能,包括...

    EXT+ASP动态生成树(XML)

    你需要配置TreePanel,包括指定数据源(通常是XML的URL),定义节点的模型(包括字段名和类型),以及设置树的其他属性,如是否可展开、是否有复选框等。 5. 加载和显示:最后,通过EXT的API加载XML数据,将树渲染...

    ext 实例 示例 实例 示例

    你需要定义每个节点的数据,包括文本、图标、是否可选中等属性。 ```javascript var node = { text: '父节点', children: [ { text: '子节点1' }, { text: '子节点2', leaf: true } // leaf属性设为true表示此...

    Ext.net TreePanel的Checkbox操作及父子联动

    - `Checkable`: 这个属性用来指定节点是否可被选中,设置为`true`即显示复选框。 - `ThreeState`: 如果设置为`true`,那么节点可以处于已选、未选和部分选(灰色)三种状态,适用于多级选择逻辑。 - `...

    ext 资源汇总

    EXT.tree.Panel是树的基础,EXT.tree.View负责渲染节点,EXT.tree.NodeInterface定义了树节点的行为。EXT.tree.Column用于设置树节点列的显示,EXT.tree.LoadMask可以在加载数据时显示遮罩。 4. **独立文件和注释**...

    好用的复选树源码改进版

    6. **可定制性**:为了适应不同的需求,复选树可能需要提供一些可配置选项,比如自定义节点样式、节点展开/折叠行为、多选模式等。 在实际应用中,你可以根据“好用的复选树源码改进版”提供的代码进行二次开发,以...

    ext TREE

    3. 定义TreeNode:设置每个节点的属性,如文本、图标、是否可选等。 4. 创建Tree Panel:作为Tree的容器,可以配置各种属性,如宽度、高度、是否允许拖放等。 5. 链接Store和Nodes:将Tree Store与TreeNode绑定,...

    Ext TreePanel

    6. **CheckColumn**:用于创建包含复选框的列,可以用于选择或标记树的节点。 7. **Editor**:在`EditorGridPanel`中,用于配置列的编辑器,如`TextField`,可以设定是否允许空白(`allowBlank`)等。 8. **有效性...

    ext 3.0 中文API

    4. **Tree**:EXT的树形组件用于展示层次结构的数据,支持动态加载、拖放操作和节点的展开/折叠。 5. **Tab Panel**:通过Tab Panel,可以创建带有多个标签页的应用界面,每个标签页可以包含不同的组件或面板。 6....

    Extjs教程_第八章_Tree(树)(2)

    - TreeEditor 可接受两个可选参数:一个用于配置编辑字段,另一个用于配置 TreeEditor 本身。 - 编辑字段可以是 TextField 的配置对象,也可以是已创建的表单字段实例,如 NumberField 或 DateField。 - ...

Global site tag (gtag.js) - Google Analytics