這可能是一個純JavaScript問題,但不知何故,我不能得到這個權利。我正在使用sencha架構師開發extjs4.2。我有一個從服務器發送的返回數組中存儲的字段的數據
{
"data": [{
"ExamID": 1,
"ExamName": "Semester-1",
"MaxMarks": 100
}, {
"ExamID": 4,
"ExamName": "Test-1",
"MaxMarks": 10
}, {
"ExamID": 5,
"ExamName": "Test-2",
"MaxMarks": 10
}]
}
JSON響應我所尋找的是僅使用「ExamName」的數據來重新配置網格。所以「ExamName」應該作爲reconfigure()函數中的數組傳遞。
我無法獲得數組形式的「ExamName」。你的幫助是高度讚賞
var gridStore = Ext.data.StoreManager.get('ClassSemesterStore');
var g = gridStore.load({params : {ClassID: ClassData }});
var data = g.data;
var length = data.getCount();
var examName = [];
for(var i = 0; i < length; i++){
examName.push(data[i]['ExamName']);
}
它說:「遺漏的類型錯誤:無法讀取的未定義的屬性‘ExamName’」
嗨adaskos我試着回答以上。然而,我收到一個錯誤 - 摘錄給出了先前選擇的記錄數組而不是當前記錄。我也試過 Store.loadData([],false); 在再次加載之前清除所有加載的存儲數據。 – user2677125
您如何以及何時重新配置您的網格商店?難道是你有一個商店的早期實例的參考?您需要提供更多的代碼。 – adaskos
有兩個網格並排配置不同的商店。我在第一個網格上使用了網格選擇偵聽器。 當一個網格行被選中時,它會給出一個'ClassID'。 var Grid = this.getSemGrid(); var Store = Grid。getStore(); //你的網格商店 var ClassData = record.get('ClassID'); console.log(ClassData); 此'ClassID在加載第二個商店時用作Param。 var g = Store.load({params:{ClassID:ClassData}}); 一旦商店被加載,我得到所有加載的記錄 var selected = g.data.item; 然後推送數組中所有記錄的一個字段的所有值.. – user2677125