在下面,我想在我的數據存儲檢索特定類別的紀錄基於什麼值存儲於該字段的(列的)價值在我的網格中的類別字段。 「categoryId」的值返回「2」。爲什麼不是findRecord返回記錄?它顯示「-1」爲「類別」。當我將它作爲組合框存儲在我的表單中時,存在key = 2的記錄。我最終希望找到key = 2的記錄,然後返回value屬性,以便在我的網格視圖中顯示該記錄的value屬性。Ext JS 4:爲什麼不是我的Ext.data.Store「findRecord」函數返回一個值?
FYI:「密鑰」屬性的類別記錄和「值」屬性的ID是我想說明的類別記錄的名稱(或在網格單元渲染)。
類別店:
Ext.define('DropdownOption', {
extend: 'Ext.data.Model',
fields: [
{ name: 'key' },
{ name: 'value' }
]
});
var statusDropdownStore = new Ext.data.Store({
proxy: new Ext.ux.AspWebAjaxProxy({
url: '/track/Controls/Shared/GeneralService.asmx/GetDropdownOptions',
actionMethods: {
read: 'POST'
},
extraParams: {
user_login: authUser,
table_name: '[status]'
},
reader: {
type: 'json',
model: 'DropdownOption',
root: 'd'
},
headers: {
'Content-Type': 'application/json; charset=utf-8'
}
})
});
視圖(Ext.grid.Panel)列:
columns: [
... snip ...
{ text: 'Status', dataIndex: 'status', sortable: true,
renderer: function(value, metaData, record, row, col, store, gridView) {
var categoryId = record.get('status');
alert("categoryId: " + categoryId); // displays "categoryId: 2"
if (categoryId > 0)
{
var category = statusDropdownStore.findRecord('key', categoryId);
alert("category: " + category); // displays "category: -1" which usually means not found
//alert(category.get('value'));
return ''; // return value property of category record
}
else
{
return '';
}
}
},
{ text: 'Date Modified', dataIndex: 'date_modified', sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y') },
... snip ...
],
=============== =====
2012年8月1日@ 5:21 pm更新:
好吧,網格初始加載時的值爲空(意味着它命中「返回」;「代碼行」。但是當我進入記錄並單擊「保存」時,網格中的所有行都會顯示類別名稱 - 使用下面的新代碼。作爲一個方面說明,我曾經有名爲「key」的id列,但我將其重命名爲「id」。
{ text: 'Status', dataIndex: 'status', sortable: true,
renderer: function(value) { //, metaData, record, row, col, store, gridView) {
if (value > 0) {
var r = statusDropdownStore.findRecord('id', value);
if (r != null)
{
var catName = r.get('value');
return catName;
}
}
return '';
}
},
嗨。你可以使用Store與本地數據在jsFiddle中發佈相同的內容嗎?這樣做,我們可以看到發生了什麼問題。 – davidbuzatto 2012-08-01 21:11:32
作爲渲染器的第一行給出了什麼'console.log(value)'? – Geronimo 2012-08-01 22:31:18