好吧,我有這個網站,我在放在框架中。它基本上連接到後端的FTP站點,檢索文件夾/文件列表,並將其作爲JSON發送到基本的ExtJS前端。TreeLoader:未觸發子節點的Ajax請求?
我讓它工作,以便樹面板正確填充,但它似乎沒有做任何特別的時候,我展開一個非葉節點。
根據我讀過的內容,它應該使用數據url,並將節點參數與節點的id傳遞給該數據url以獲取子節點的數據,但是在螢火蟲中,我沒有查看針對該數據發送的任何請求。
我需要做些什麼來允許ajax調用觸發,以便有節點的節點在節點展開時動態獲取它們?
下面是引用相關代碼:
Ext.onReady(function() {
new Ext.Viewport({
layout: 'border',
defaults: {
height: 100,
width: 250,
collapseMode: 'mini'
},
items : [
{
region: 'center',
margins: '5 5 0 0',
contentEl: 'center-content'
},
{
id: 'file-tree',
region: 'west',
title: 'Files',
split: true,
collapsible: true,
xtype: 'treepanel',
autoScroll: true,
loader: new Ext.tree.TreeLoader({
dataUrl: 'http://localhost:9000/application/listFiles',
}),
root: new Ext.tree.AsyncTreeNode({
expand: true,
text: "/",
id: "/"
}),
rootVisibile: true,
listeners: {
click: function(n) {
Ext.Msg.alert('File Tree Click', 'You clicked: ' + n.attributes.id);
}
}
}
]
});
});
中的id JSON返回是子目錄的完整路徑我想擴大,以及listfiles行動將採取的參數和返回合適文件。
按照要求,這裏是JSON輸出的一個片段:
[
{
id: "/./",
text: "./",
leaf: false,
children: [ ]
},
{
id: "/../",
text: "../",
leaf: false,
children: [ ]
},
{
id: "/.ftpquota",
text: ".ftpquota",
leaf: true,
children: [ ]
},
{
id: "/.htaccess",
text: ".htaccess",
leaf: true,
children: [ ]
},
{
id: "/022610.html",
text: "022610.html",
leaf: true,
children: [ ]
},
{
id: "/Gail/",
text: "Gail/",
leaf: false,
children: [ ]
}
]
這最後一個項目是我期待動態加載的孩子到該文件夾的一個例子。
好的,我會試一試,看看我能否得到它的工作。感謝您的答覆。 – 2010-08-23 16:41:57
我想我會走向一個稍微不同的方向,但是當你提供了我想要完成的最佳答案時,我會獎勵你的賞金。 – 2010-08-26 03:36:30