kendoui中树状菜单的无刷新更新菜单名称,替换DataSource中的data不改变菜单的展开闭合状态

说明:sysMenuScore为树状菜单数据源(dataSource),sysMenuId为当前修改菜单项的id;树状菜单加载模式为:第一次加载所有根节点菜单,当展开有子节点的菜单时,向后台请求数据,获取当前根节点菜单的dataSource填充至原dataSource中的children属性中(第一次加载所有根节点菜单时,有子节点的菜单的children属性为空,只有在展开操作时,才会查询填充此属性);

//无刷新替换树状菜单名称
	function replaceTreeName(){
		//修改后的菜单名称
		var newName = $("#sysMenuName").val();
		//根数据源的data
		var sysMenuDataSourceData = sysMenuScore.data();
		//存放根数据源data的数组
		var sysMenuDataSourceNew = new Array();
		//循环dataSource根节点
		for(var i = 0;i < sysMenuDataSourceData.length;i++){ 
    	    //判断当前数据源的data是否有子节点
    	    if(sysMenuDataSourceData[i].hasChildren == true){
    	    	recursiveChildren(sysMenuDataSourceData[i],newName);
    	    }
	    	if(sysMenuDataSourceData[i].id == sysMenuId){ 
	    		sysMenuDataSourceData[i].name = newName;
    	    }
    	    sysMenuDataSourceNew.push(sysMenuDataSourceData[i]);
		}
		sysMenuScore.data(sysMenuDataSourceNew);
	}
//递归子节点
	function recursiveChildren(tempDataSourceData,newName){
		debugger;
		//获取当前根节点下的所有子节点所有的data
    	var sysMenuOneChildData = tempDataSourceData.children.data();
    	var sysMenuOneChildDataNew = new Array();
    	if(sysMenuOneChildData.length > 0){
    		for(var j = 0;j < sysMenuOneChildData.length;j++){
	    		if(sysMenuOneChildData[j].id == sysMenuId){
    				sysMenuOneChildData[j].name = newName;
    	    	}
	    		sysMenuOneChildDataNew.push(sysMenuOneChildData[j]);
	    	}
	    	tempDataSourceData.children.data(sysMenuOneChildDataNew);
    	}
    	for(var k = 0;k < sysMenuOneChildData.length;k++){
    		if(sysMenuOneChildData[k].hasChildren == true){
        		//var zijiedian = sysMenuOneChildData[k].children.data();
    			recursiveChildren(sysMenuOneChildData[k],newName);
        	}
    	}
	}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值