前台ext treestore id重复的解决方法。
来源:互联网 发布:linux smaps 编辑:程序博客网 时间:2024/05/09 13:49
前几天遇到这个问题,是人员的管理,一个组织下面有其他子组织,一个人可以属于多个组织。这样的情况出现了同个tree 中store id出现重复的现象。
这时候需要对他的id进行拼接。
我查了api,找到store 有个事件,是load,在他load的时候对他进行拼接原理就是:“如果一个节点不属于跟节点,他的id就是父节点id+本身id”。
listeners:{ beforeload:function(){ // Ext.MessageBox.alert('提示',"数据开始加载") }, load:function(store,records,successFull,o){ Ext.each(records,function(item){ var childs=item.childNodes; //alert(item.data.id); Ext.each(childs,function(child){ if('root'!=item.data.id){ child.setId(item.data.id+'-'+child.data.id); child.commit(); } }); //item.commit(); }); } }
写一个工具类(用来解析节点id):
Ext.define("app.system.util.strSplitUtil",{/** * 分割字符串,获得需要的id * @param {} * @param {} */getTreeNodeId:function(nodeId){var id='';if((typeof nodeId=='string')&&nodeId.constructor==String){//有时候我们id并没有-,系统会认为不是string类型var ids=nodeId.split("-");if('root'==nodeId){id=nodeId;}else{ id=ids.pop();}} else{id=nodeId;}return id;},getTreeNodeIds:function(nodeId){//操作数组的方法 var ids=[]; var id=''; var count=0; if((typeof nodeId=='object')&&nodeId.constructor==Array){ for(i=0;i<nodeId.length;i++){count=count+1;if((typeof nodeId[i]=='number')&&nodeId[i].constructor==Number){nodeId[i]=String(nodeId[i]);}var tempIds=nodeId[i].split("-"); ids.push(tempIds.pop());} }return ids;},getParenIds:function(nodeId){//通过输入一个id,获得它和它所有的父节点idvar ids=[];if((typeof nodeId=='string')&&nodeId.constructor==String){//有时候我们id并没有-,系统会认为不是string类型var ids=nodeId.split("-");} else{ids[0]=ids.push(nodeId.toString());}return ids;}/*,test:function(){ alert('test');}*/});
在controller中混入工具类:
mixins: {
strSplitUtil:"app.system.util.strSplitUtil"
},
可拿到id了:
var self=this
var id=self.getTreeNodeId(record.get("id"));
- 前台ext treestore id重复的解决方法。
- Ext id重复问题
- ext id重复
- Ext.data.TreeStore
- Ext.Window 不能重复打开 的解决方法
- 关于Ext的TreeStore会第一次默认加载的问题
- ext treestore auload失效问题
- EXTJS4 Ext.data.TreeStore model
- ext treestore 自动加载问题
- 在Ext的JsonStore的load方法中使用回调callback 修改treeStore 数据
- Extjs4 重写Ext.data.TreeStore的load方法,不使多次加载
- mysql数据库id重复无法删除的解决方法
- Ext利用TreeStore构建动态菜单
- Ext JS 3.3.1中TreePanel动态加载数据库信息时ID重复的问题
- Extjs4.0.7 中 TreeStore.load()出现 url undefine 错误的解决方法
- Dialog的ID重复
- EXTJS框架中由于ID重复引起的各种异常的解决方法(转)
- ExtJs4中由于ID重复引起的各种异常的解决方法
- 可信计算
- Fedora 下配置NFS服务器
- IOS Reachability判断所请求服务器是否超时?
- 毕业设计图片
- Git详解之二:Git基础
- 前台ext treestore id重复的解决方法。
- 大塚愛ー恋愛写真 歌词
- mfc控件位置调整和坐标确定
- jQuery设计思想
- 单片机开发板与SC2272-M4连接电路图
- 明智地使用Pimpl
- 关于数据仓库 — ODS概念
- APP VS WEB
- 关于html的相对路径问题, 分为引用上级目录和下级目录