天天看点

Ext Tree 过滤 树 过滤 代码

聽鍓嶈█锛氬湪浠讳綍涓€涓猅ree鏍戜腑锛屾彁渚涙煡鎵惧姛鑳芥棤鐤戜細澶уぇ鏂逛究鐢ㄦ埛銆備笉鐢ㄧ潄澶х溂鐫涗竴绾т竴绾у幓灞曞紑锛屽彧瑕佽緭鍏ュ叧閿瓧锛屽洖杞﹀氨鑳借嚜鍔ㄥ畾浣嶅埌鑺傜偣锛屽矀涓嶅揩鍝夛紵杩欐牱鐨勭敤鎴蜂綋楠屾槸鐩稿綋瀹岀編鐨勩€備絾鍦ㄥ姩鎬佸紓姝ュ姞杞铰犵殑Tree鏍戜腑锛屽鎴风瀹炵幇杩欐牱鐨勫姛鑳藉氨鏈夌偣鍥伴毦锛屽洜涓鸿妭鐐规槸寮傛鍔ㄦ€佸姞杞界殑銆傞粯璁ゆ槸娌℃湁鍏ㄩ儴浠庢湇鍔″櫒绔彇鍥?鐨勶紝閫氬父鐨勫仛娉曟槸榛樿鍔犺浇绗竴绾э紝鍏朵粬绾х殑鑺傜偣閮芥槸鎯版€ф寜闇€鍔犺浇鐨勶紝鐢ㄦ埛鐐逛簡鎵嶄細灞曞紑銆傝€屽浜庤繖涓病鏈夊畬鍏ㄥ姞杞界殑鏍戯紝鐢ㄦ埛甯屾湜鎼滅储鑺傜偣锛屾€庝箞瀹炵幇锛熺鍔炴硶鏄厛灞曞紑鏍戠殑鎵€鏈夎妭鐐癸紝鐒跺悗鍐嶅湪鏍戜腑鎼滅储聽銆傝繖鏍风殑璇濆湪鏈嶅姟鍣ㄦ暟鎹噺澶х殑鎯呭喌涓嬩細闈炲父鎱€傛墍浠ュ湪鏁版嵁閲忓ぇ鐨勬儏鍐典笅锛屾槸涓嶉噰鍙栬繖绉嶅疄鐜版柟寮忕殑锛岃繖閲岀殑瀹炵幇鏂规硶鏄湪鏈嶅姟鍣ㄧ鐨凷ervlet涓煡鎵撅紝閫氳繃AJAX杩斿洖绗竴涓尮閰嶈妭鐐圭殑璺緞Path锛岀劧鍚庡睍寮€杩欎釜璺緞锛岄€変腑杩欎釜鎼滅储鍒拌妭鐐孤犮€?

<html>聽聽

<head>

聽聽聽聽聽聽聽聽<meta聽http-equiv="Content-Type"聽content="text/html;聽charset=gbk">

聽聽聽聽聽聽聽聽<title>05.tree</title>

聽聽聽聽聽聽聽聽<link聽rel="stylesheet"聽type="text/css"聽href="../../resources/css/ext-all.css" target="_blank" rel="external nofollow" 聽/>

聽聽聽聽聽聽聽聽<script聽type="text/javascript"聽src="../../adapter/ext/ext-base.js"></script>

聽聽聽聽聽聽聽聽<script聽type="text/javascript"聽src="../../ext-all-debug.js"></script>

聽聽聽聽聽聽聽聽<script聽type="text/javascript"聽src="localXHR.js"></script>

聽聽聽聽聽聽聽聽<script聽type="text/javascript">

Ext.onReady(function(){

聽聽聽聽var聽tree聽=聽new聽Ext.tree.TreePanel({

聽聽聽聽聽聽聽聽loader:聽new聽Ext.tree.TreeLoader({

聽聽聽聽聽聽聽聽聽聽聽聽dataUrl:聽'10-01.txt'

聽聽聽聽聽聽聽聽}),

聽聽聽聽聽聽聽聽root:聽new聽Ext.tree.AsyncTreeNode({

聽聽聽聽聽聽聽聽聽聽聽聽id:聽'0',

聽聽聽聽聽聽聽聽聽聽聽聽text:聽'鏍?

聽聽聽聽聽聽聽聽}),

聽聽聽聽聽聽聽聽autoHeight:聽true,

聽聽聽聽聽聽聽聽renderTo:聽'tree'

聽聽聽聽});

聽聽聽聽tree.expandAll();

聽聽聽聽var聽filter聽=聽new聽Ext.tree.TreeFilter(tree,聽{

聽聽聽聽聽聽聽聽clearBlank:聽true,

聽聽聽聽聽聽聽聽autoClear:聽true

聽聽聽聽});

聽聽聽聽//聽淇濆瓨涓婃闅愯棌鐨勭┖鑺傜偣

聽聽聽聽var聽hiddenPkgs聽=聽[];

聽聽聽聽var聽field聽=聽Ext.get('filter');

聽聽聽聽//聽鎸夐敭鍚庤Е鍙戜簨浠? 聽聽聽聽field.on('keyup',聽function(e)聽{

聽聽聽聽聽聽聽聽var聽text聽=聽field.dom.value;

聽聽聽聽聽聽聽聽//聽鍏堣鏄剧ず涓婃闅愯棌鎺夌殑鑺傜偣

聽聽聽聽聽聽聽聽Ext.each(hiddenPkgs,聽function(n){

聽聽聽聽聽聽聽聽聽聽聽聽n.ui.show();

聽聽聽聽聽聽聽聽});

聽聽聽聽聽聽聽聽//聽濡傛灉杈撳叆鐨勬暟鎹笉瀛樺湪锛屽氨鎵цclear()

聽聽聽聽聽聽聽聽if(!text){

聽聽聽聽聽聽聽聽聽聽聽聽filter.clear();

聽聽聽聽聽聽聽聽聽聽聽聽return;

聽聽聽聽聽聽聽聽}

聽聽聽聽聽聽聽聽tree.expandAll();

聽聽聽聽聽聽聽聽//聽鏍规嵁杈撳叆鍒朵綔涓€涓鍒欒〃杈惧紡锛?i'浠h〃涓嶅尯鍒嗗ぇ灏忓啓

聽聽聽聽聽聽聽聽var聽re聽=聽new聽RegExp(Ext.escapeRe(text),聽'i');

聽聽聽聽聽聽聽聽filter.filterBy(function(n){

聽聽聽聽聽聽聽聽聽聽聽聽//聽鍙繃婊ゅ彾瀛愯妭鐐癸紝杩欐牱鐪佸幓鏋濆共琚繃婊ょ殑鏃跺€欙紝搴曚笅鐨勫彾瀛愰兘鏃犳硶鏄剧ず

聽聽聽聽聽聽聽聽聽聽聽聽return聽!n.isLeaf()聽||聽re.test(n.text);

聽聽聽聽聽聽聽聽});

聽聽聽聽聽聽聽聽//聽濡傛灉杩欎釜鑺傜偣涓嶆槸鍙跺瓙锛岃€屼笖涓嬮潰娌℃湁瀛愯妭鐐癸紝灏卞簲璇ラ殣钘忔帀

聽聽聽聽聽聽聽聽hiddenPkgs聽=聽[];

聽聽聽聽聽聽聽聽tree.root.cascade(function(n)聽{

聽聽聽聽聽聽聽聽聽聽聽聽if(!n.isLeaf()聽&&聽n.ui.ctNode.offsetHeight聽<聽3){

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽n.ui.hide();

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽hiddenPkgs.push(n);

聽聽聽聽聽聽聽聽聽聽聽聽}

聽聽聽聽聽聽聽聽});

聽聽聽聽})

});

聽聽聽聽聽聽聽聽</script>

聽聽聽聽</head>

聽聽聽聽<body>

聽聽聽聽聽聽聽聽<script聽type="text/javascript"聽src="../shared/examples.js"></script>

聽聽聽聽聽聽聽聽<input聽id="filter"聽type="text"聽/>

聽聽聽聽聽聽聽聽<div聽id="tree"聽style="height:300px;"></div>

聽聽聽聽</body>

</html>

浜屻€伮犻€氳繃AJAX杩斿洖绗竴涓尮閰嶈妭鐐圭殑璺緞Path锛岀劧鍚庡睍寮€杩欎釜璺緞锛岄€変腑杩欎釜鎼滅储鍒拌妭鐐?

瑕佸疄鐜版鍔熻兘闇€瑙e喅涓変釜闂锛?

1.聽 閫氳繃Ajax灏嗚妭鐐筰d鎴杢ext浼犲洖鏈嶅姟鍣ㄣ€?

2.聽 鍦ㄦ湇鍔″櫒绔煡鎵惧埌鑺傜偣path锛宲ath鐢辫妭鐐筰d鍙峰拰鈥?鈥濇瀯鎴愩€傛敞鎰弍ath鐨勬牸寮忥紝濡傦細'/0/4/7'銆傛澶?琛ㄧず鏍硅妭鐐筰d锛?琛ㄧず琚煡鎵剧殑鑺傜偣id銆?

3. 灏唒ath浼犲洖瀹㈡湇绔紝Extjs灏嗛€氳繃Ext.tree.TreePanel聽鐨別xpandPath聽鏂规硶灞曞紑鑺傜偣銆?

鍦‥xtJS涓紝AsyncTreeNode鏄紓姝ヨ妭鐐癸紝TreeLoader瀹炵幇瀵规爲缁撶偣鐨勫紓姝ュ姞杞斤紝鍗充娇鏈嶅姟鍣ㄥ彇鍒板ぇ閲忕殑鏁版嵁锛屼篃娌℃湁闂锛屽紓姝ュ姞杞借兘淇濊瘉鎬ц兘鍜岃妭鐐圭殑鎸夐渶鍔犺浇銆傛湇鍔$闇€瑕佺敓鎴愭寚瀹氭牸寮忕殑Json瀛楃涓层€?

Js浠g爜 聽聽

Ext Tree 过滤 树 过滤 代码
  1. var聽eventTree聽=聽new聽Ext.tree.TreePanel({聽聽
  2. 聽聽聽聽聽聽聽聽聽聽region:聽'center',聽聽
  3. 聽聽聽聽聽聽聽聽聽聽collapsible:聽false,聽聽
  4. 聽聽聽聽聽聽聽聽聽聽title:聽'瀵艰埅',聽聽
  5. 聽聽聽聽聽聽聽聽聽聽xtype:聽'treepanel',聽聽
  6. 聽聽聽聽聽聽聽聽聽聽id:'event-west-tree',聽聽
  7. 聽聽聽聽聽聽聽聽聽聽width:聽180,聽聽
  8. 聽聽聽聽聽聽聽聽聽聽animate:false,聽//灞曞紑,鏀剁缉鍔ㄧ敾聽聽
  9. 聽聽聽聽聽聽聽聽聽聽autoScroll:聽true,聽聽
  10. 聽聽聽聽聽聽聽聽聽聽enableDD:true,聽聽
  11. 聽聽聽聽聽聽聽聽聽聽split:聽true,聽聽
  12. 聽聽聽聽聽聽聽聽聽聽loader:聽new聽Ext.tree.TreeLoader({聽聽
  13. 聽聽聽聽聽聽聽聽聽聽聽聽dataUrl:'ruleGroupTree.do?json=1'聽聽
  14. 聽聽聽聽聽聽聽聽聽聽}),聽聽
  15. 聽聽聽聽聽聽聽聽聽聽root:聽new聽Ext.tree.AsyncTreeNode({聽聽
  16. 聽聽聽聽聽聽聽聽聽聽聽聽text:聽'鍒嗙被瑙勫垯缁?,聽聽
  17. 聽聽聽聽聽聽聽聽聽聽聽聽draggable:false,聽聽
  18. 聽聽聽聽聽聽聽聽聽聽聽聽//expanded:true,聽//榛樿灞曞紑绗竴绾犅?
  19. 聽聽聽聽聽聽聽聽聽聽聽聽id:'0'聽聽
  20. 聽聽聽聽聽聽聽聽聽聽}),聽聽
  21. 聽聽聽聽聽聽聽聽聽聽tbar:[{聽聽
  22. 聽聽聽聽聽聽聽聽聽聽聽聽iconCls:聽'icon-expand-all',聽聽
  23. 聽聽聽聽聽聽聽聽聽聽聽聽tooltip:聽'灞曞紑',聽聽
  24. 聽聽聽聽聽聽聽聽聽聽聽聽handler:聽function(){聽eventTree.expandAll();聽},聽聽
  25. 聽聽聽聽聽聽聽聽聽聽聽聽scope:聽this聽聽
  26. 聽聽聽聽聽聽聽聽聽聽},聽'-',聽{聽聽
  27. 聽聽聽聽聽聽聽聽聽聽聽聽iconCls:聽'icon-collapse-all',聽聽
  28. 聽聽聽聽聽聽聽聽聽聽聽聽tooltip:聽'鏀剁缉',聽聽
  29. 聽聽聽聽聽聽聽聽聽聽聽聽handler:聽function(){聽eventTree.collapseAll();聽},聽聽
  30. 聽聽聽聽聽聽聽聽聽聽聽聽scope:聽this聽聽
  31. 聽聽聽聽聽聽聽聽聽聽},聽new聽Ext.form.TextField({聽聽
  32. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽width:聽115,聽聽
  33. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽emptyText:'蹇€熸绱?,聽聽
  34. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽enableKeyEvents:聽true,//缁欒緭鍏ユ缁戝畾keyup浜嬩欢,闇€瑕佸姞涓奺nableKeyEvents:true鎵嶈兘璁〆xtjs鐨則extfield浠g悊榧犳爣浜嬩欢聽聽
  35. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽listeners:{聽聽
  36. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽keyup:function(node,聽event)聽{聽聽
  37. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽findByKeyWordFiler(node,聽event);聽聽
  38. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽},聽聽
  39. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽scope:聽this聽聽
  40. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽聽
  41. 聽聽聽聽聽聽聽聽聽聽聽聽})]聽聽
  42. });聽聽
  43. 聽聽
  44. eventTree.expandAll();聽聽
  45. 聽聽
  46. var聽filterTreeFiled聽=聽new聽Ext.form.TextField({聽聽
  47. 聽聽聽聽width:115,聽聽
  48. 聽聽聽聽emptyText:'蹇€熸绱?,聽聽
  49. 聽聽聽聽enableKeyEvents:聽true聽聽
  50. });聽聽
  51. var聽tbar聽=聽eventTree.getTopToolbar();聽聽
  52. <span聽style="color:聽#ff0000;">tbar.add(filterTreeFiled);聽聽
  53. tbar.doLayout();</span>聽聽
  54. 聽聽
  55. 聽聽
  56. 聽聽
  57. var聽selectNode聽=聽function(node)聽{聽聽
  58. 聽聽聽聽node.ensureVisible();聽聽
  59. 聽聽聽聽node.select();聽聽
  60. 聽聽聽聽node.fireEvent('click',聽node);聽聽
  61. }聽聽
  62. 聽聽
  63. function聽onExpandPathComplete(bSuccess,聽oLastNode)聽{聽聽
  64. 聽聽聽聽if聽(!bSuccess)聽聽
  65. 聽聽聽聽聽聽聽聽return;聽聽
  66. 聽聽聽聽//聽focus聽鑺傜偣锛屽苟閫変腑鑺傜偣锛伮犅?
  67. 聽聽聽聽selectNode(oLastNode);聽聽
  68. }聽聽
  69. 聽聽
  70. var聽findByKeyWordPath聽=聽function(node,聽event)聽{聽聽
  71. 聽聽聽聽clearTimeout(timeOutId);聽聽
  72. 聽聽聽聽timeOutId聽=聽setTimeout(function()聽{聽聽
  73. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽var聽text聽=聽node.getValue().trim();聽聽
  74. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//聽閲囩敤ajax鑾峰緱闇€瑕佸睍寮€鐨勮矾寰劼犅?
  75. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if聽(text聽!=聽"")聽{聽聽
  76. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽Ext.Ajax.request({聽聽
  77. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽params聽:聽{聽聽
  78. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽keyWord聽:聽text聽聽
  79. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽},聽聽
  80. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽url聽:聽'ruleGroupTree.do?json=1',聽聽
  81. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽method聽:聽'POST',聽聽
  82. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽async聽:聽false,聽聽
  83. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽success聽:聽function(response,聽opts)聽{聽聽
  84. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽var聽obj聽=聽Ext.decode(response.responseText);聽聽
  85. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<span聽style="color:聽#ff0000;">eventTree.expandPath('/0/101/10101','id',onExpandPathComplete);</span>聽聽
  86. 聽聽
  87. 聽聽
  88. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽eventTree.expandPath('/0/101/10101',聽'id',聽function(bSucess,oLastNode){聽聽
  89. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽eventTree.getSelectionModel().select(oLastNode);聽聽
  90. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽});聽聽
  91. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(obj.success){聽聽
  92. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽var聽length聽=聽obj.length;聽聽
  93. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽eventTree.root.reload();聽聽
  94. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//eventTree.expandAll();聽聽
  95. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for聽(var聽i聽=聽0;聽i聽<聽length;聽i++)聽{聽聽
  96. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽var聽path聽=聽obj[i].path;聽聽
  97. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽eventTree.expandPath('/0/101/275','id',onExpandPathComplete);聽聽
  98. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽聽
  99. 聽聽
  100. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽},聽聽
  101. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽failure聽:聽function(response,聽opts)聽{聽聽
  102. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽Ext.Msg.alert("閿欒鎻愮ず",聽"璇锋眰澶辫触,璇蜂笌寮€鍙戜汉鍛樿仈绯汇€?).setIcon(Ext.MessageBox.ERROR);聽聽
  103. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽聽
  104. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽});聽聽
  105. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽else聽{聽聽
  106. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽聽
  107. 聽聽聽聽聽聽聽聽聽聽聽聽},聽500);聽聽
  108. }聽聽
  109. filterTreeFiled.on("keyup",聽function(node,聽event)聽{聽聽
  110. 聽聽聽聽findByKeyWordPath(node,聽event);聽聽
  111. });聽聽

浠ヤ笅鏄叿浣撳疄鐜帮細

1. servlet绔瀹炵幇鐨勫姛鑳藉氨鏄皝瑁卲ath锛屽皢path鍙戦€佸埌瀹㈡湇绔嵆鍙紝鏍煎紡濡備笂銆備唬鐮佺渷鐣ャ€?

2. 瀹㈡埛绔唬鐮侊細

// 鏌ユ壘鏍戣妭鐐? 聽searchNode : function() {

聽聽聽聽聽 var searchForm = Ext.getCmp("searchForm").getForm();

聽聽聽聽聽 var param = searchForm.getValues();

聽聽聽聽 聽if(searchForm.isValid()){

聽聽聽聽聽聽聽聽聽 Ext.Ajax.request({

聽聽聽聽聽聽聽聽聽聽聽聽聽 聽url: 'dept!search.action',

聽聽聽聽聽聽聽聽聽聽聽聽聽聽 params:{formData:Ext.encode(param)},

聽聽聽聽聽聽聽聽聽聽聽聽聽聽 success:function(response){

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 var o = Ext.decode(response.responseText);

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽if(o.success){

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 var tree = Ext.getCmp('sysOrgs');

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽path=o.message;

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽tree.expandPath(path, 'id',聽this.onExpandPathComplete聽);

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽},

聽聽聽聽聽聽聽聽聽聽聽聽聽聽 failure:function(response){

聽聽聽聽聽聽聽聽聽聽聽聽聽聽 },

聽聽聽聽聽聽聽聽聽聽聽聽聽聽 scope:this

聽聽聽聽聽聽聽聽 });

聽聽聽聽聽 }

聽},

聽onExpandPathComplete:聽function(bSuccess, oLastNode) {聽

聽聽if(!bSuccess)聽

聽聽聽return;

聽聽//focus 鑺傜偣锛屽苟閫変腑鑺傜偣锛侊紝浠ヤ笅浠g爜涓嶅彲灏懧? 聽聽oLastNode.ensureVisible();

聽聽oLastNode.select();

聽聽oLastNode.fireEvent('click', oLastNode);

聽聽

聽}

鍏充簬tree.expandPath鏂规硶鐨勪娇鐢ㄥ叿浣撳弬鐓PI鏂囨。銆?