日期:2014-05-16  浏览次数:20373 次

ExtJs TreePanel的管理
if(me.paramObj.addType=="addNext"){//标准分类添加下一级
											  //设置父节点为非叶子节点
											  var nodeData = node.data;
											  nodeData.leaf = false;
											  node.updateInfo(true, nodeData);
											  //展开当前node
									          var store=tree.getStore();
								              store.load({node:node});
										  }else if(me.paramObj.addType=="addNow"){//标准分类添加同级
											  //展开父级node
											  var store=tree.getStore();
								              store.load({node:node.parentNode});
								              //再选中当前节点
								              tree.getSelectionModel().select(node);
										  }else{
											  if(me.controlType=='treeEdit'){//修改标准分类
												  //更新当前选中的node名称
												  var nodeData = node.data;
					                              nodeData.text = data.name;//取得后台返回的修改后的名称
					                        	  node.updateInfo(true, nodeData);
											  }
	  }

?发现有时候新添加的noded的parentNode=null。很无语,后来改成appendChild函数,不用节点的局部刷新了。

新做的代码如下:

if(me.paramObj.addType=="addNext"){//标准分类添加下一级
											  //设置父节点为非叶子节点
								              var newnode = {
								                  id:data.id,
								                  text:data.text,
								                  iconCls:"icon-note",
								                  leaf:true
								              };
				                              node.appendChild(newnode);
				                              node.expand();
										  }else if(me.paramObj.addType=="addNow"){//标准分类添加同级
											  var newnode = {
									                  id:data.id,
									                  text:data.text,
									                  iconCls:"icon-note",
									                  leaf:true
									              };
				                              node.parentNode.appendChild(newnode);										  
										  }else{
											  if(me.controlType=='treeEdit'){//修改标准分类
												  //更新当前选中的node名称
												  var nodeData = node.data;
					                              nodeData.text = data.text;//取得后台返回的修改后的名称
					                        	  node.updateInfo(true, nodeData);
											  }
										  }

?