이것은 순수한 자바 스크립트의 질문 일 수 있지만 어떻게 든이 권리를 얻을 수 없습니다. 나는 extachs4.2에서 sencha 아키텍트를 사용하고있다. 나는 단지 "ExamName"의 데이터를 사용하여 그리드를 다시 구성입니다 무엇을 찾고배열의 상점에있는 필드의 데이터를 반환합니다.
{
"data": [{
"ExamID": 1,
"ExamName": "Semester-1",
"MaxMarks": 100
}, {
"ExamID": 4,
"ExamName": "Test-1",
"MaxMarks": 10
}, {
"ExamID": 5,
"ExamName": "Test-2",
"MaxMarks": 10
}]
}
로 서버에서 전송 된 JSON 응답이있다. 따라서 "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']);
}
가 말한다 "catch되지 않은 형식 오류를 : 정의되지 않은 재산 '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