0
我需要延遲加載目錄到dijit.Tree
這是在dijit.form.Dialog
。 我得到的根目錄,我可以把它們放入與根節點'計算機', 樹,但我不知道如何讓延遲加載工作。沒有得到dijit.Tree到延遲加載
當我點擊一個節點時,我調用了一個函數,它調用ajax來獲取所選節點的子節點。我可以獲取它們並將它們呈現爲JSON並返回到gsp(我認爲它們已經很好地形成)。但是,當我嘗試將它們放入商店時,它會失敗。我無法獲得store.newItem()
的工作。無論如何,我真的不知道這是否是正確和最簡單的方法。我搜索並嘗試失敗,不幸的是,我卡住了。
我用:
- 的Grails 1.3.9
- Dojo Toolkit的1.6
的方式我如何獲得數據存儲區的GSP:
File [] roots = File.listRoots()
def item = []
roots.each{
item << [
name : it.getAbsolutePath(),
path : it.getAbsolutePath(),
children : []
]
}
def store = [
identifier: 'path',
label: 'name',
items: item
]
def retVal = [store: store]
render retVal as JSON
店的定義,模型和樹:
function prepare(dataStore) {
var store = new dojo.data.ItemFileWriteStore({
data: dataStore
});
var treeModel = new dijit.tree.ForestStoreModel({
store: store,
rootId : "root",
rootLabel : "Computer",
childrenAttrs: ["children"]
});
var treeControl = new dijit.Tree({
id: 'directoryTree',
model: treeModel,
autoExpand: false,
onClick: loadDirectories
},
"treeOne");
}
下面的代碼我如何嘗試編輯存儲,數據是一個列表:
data = [
[name: 'info', path: 'C:\temp\info', children: []]
[name: 'grmpf', path: 'C:\temp\grmpf', children: []]
...
]
for(i=0; i < data.length; i++){
store.newItem({name: data[i].name, path: data[i].path, children: data[i].children}, {parent: parent.path[0], attribute: 'children'});
store.save();
}
我嘗試了這種方式有一次,我刪除的項目,編輯該項目,並把它再次進店。但沒有任何工作..
如果任何人都可以給我任何見解,我將不勝感激!
請顯示一些關鍵代碼。 –
我編輯了我的條目並在其中添加了一些代碼。如果您需要更多,請詢問 – Melanie
螢火蟲控制檯中的任何錯誤? – maialithar