extjs4 appendChild 添加节点后不显示问题的解决

测试代码如下:


Ext.onReady(function() {

			var store = Ext.create('Ext.data.TreeStore', {
						root : {
							text : "Root",
							leaf : false,
							expanded : true,
							children : [{
										text : "detention",
										id : 'first',
										leaf : true
									}, {
										text : "homework",
										expanded : true,
										children : [{
													text : "book report",
													leaf : true
												}, {
													text : "algebra",
													leaf : true
												}]
									}, {
										text : "buy lottery tickets",
										leaf : true
									}]
						}
					});

			Ext.create('Ext.tree.Panel', {
						title : 'Simple Tree',

						dockedItems : [{
									xtype : 'toolbar',
									dock : 'top',
									items : ['->', {
												xtype : 'button',
												text : '新增同级',
												id : 'listaddSamebtn',
												handler : function(thiz) {
													var treePanel = thiz.up('treepanel');
													var selNodes = treePanel.getSelectionModel().getSelection();
													if (selNodes.length > 0) {
														var selNode = selNodes[0];
														if (selNode.get('parentId') == 'root') {
															console.log('selNodes is root', selNodes);
															var root = treePanel.getRootNode();
															console.log('RRRRRRRRRRRRRRRR', root);
															root.appendChild({
																		text : 'newNodeForRoot',
																		leaf : true
																	});
														} else {
															console.log('selNodes', selNodes);
															selNode.appendChild({
																		text : 'newNode',
																		leaf : true
																	});
														}
													} 
												}
											}, {
												xtype : 'button',
												text : '新增下级',
												id : 'listaddNextbtn',
												handler : function(thiz) {
													var treePanel = thiz.up('treepanel');
													var selNodes = treePanel.getSelectionModel().getSelection();
													if (selNodes.length > 0) {
														var selNode = selNodes[0];
														selNode.data.leaf = false;
														console.log('selNode', selNode);
														selNode.set('children', [{
																			text : 'newNode',
																			leaf : true
																		}]);
														selNode.appendChild({
																	text : 'newNode',
																	leaf : true
																});

													}

												}
											}]
								}],
						width : 600,
						height : 550,
						store : store,
						rootVisible : true,
						renderTo : Ext.getBody()
					});

		});

最后发现只有设置selNode.data.leaf = false;后才能正常显示添加的节点。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值