2011-07-28 25 views
0

我試圖創建JSON店,這是該格式的多選列表ExtJS的從JSON字符串列表多選

[{"photo_id":1,"file_name":"test.JPG","x":123,"y":456},{"photo_id":2,"file_name":"test2.JPG","x":321,"y":765}] 

多選列表填充行,但它並沒有顯示在列表中的FILE_NAME

var storeVar = new Ext.data.Store({ 
    extend: 'Ext.data.Model', 
    fields: ['photo_id', 'file_name'], 
    data: store // contains the json string 
}); 

,這裏是多選箱

Ext.create('Ext.form.Panel', { 
bodyPadding: 10, 
frame: true, 
width: '100%', 
items: [ 
    { 
     anchor: '100%', 
     displayField: 'file_name', 
     valueField: 'photo_id', 
     store: storeVar , 
     xtype: 'multiselect', 
     fieldLabel: 'Select an image', 
     allowBlank: false 
    } 
] 
}) 
+0

很抱歉,但你可以再次編輯您的文章,因爲你給了一個無效的JSON數據,'{...「Y」:456,{「photo_id ...}' –

+0

ok了,是我不好,讓我編輯現在 – Grigor

回答

3

格里戈爾,您可以使用Ext.JSON.decode到您的字符串JSON格式解碼:該生產線

extend: 'Ext.data.Model' 

對無影響:

var storeVar = new Ext.data.Store({ 
    extend: 'Ext.data.Model', 
    fields: ['photo_id', 'file_name'], 
    data: Ext.JSON.decode(store) // contains the json 
}); 

Here is demo

+0

你是真棒分子。感謝您的答覆。非常有用! – Grigor

+0

爲什麼會出現110的時候我store.length?很明顯,在該字符串不是110的效果。嗯 – Grigor

+1

@Grigor,'store.length'代表性能ammount的這'store'包含作爲對象有返回的所有項目的ammount的特殊功能 - 'store.getTotalCount()' –

1

您用模型的定義混合存儲的創建商店,檢查文件docs

的例子,我不能評論的問題/編輯,所以我把它寫在一個新的答案。