다음은 Ext.grid.Panel 열의 렌더러입니다. contactStore에 2,000 개의 값이 있다고 가정하고 id (이 경우 value 매개 변수)를 기반으로하는 레코드의 이름이 마음에 든다면 그리드에만 25 개의 행/레코드가 있습니다. 2,000 개의 레코드를 모두로드하는 대신 그리드 열 ID와 관련된 관련 레코드 (외래 키 기반)를 가져올 수 있도록 저장소를 동적으로 가져올 수 있습니까? 저장소를로드 한 다음 콜백에서 어떻게 든이 "렌더러"함수가 콜백 성공 후 값을 표시하도록 할 수 있습니까?Ext.grid.Panel 열의 표시 페이지 데이터를 기반으로 저장소를 동적으로로드
columns: [{
...
}, {
header: 'Contact Name',
flex: 1,
sortable: true,
dataIndex: 'contact_id',
renderer: function(value) {
var contactStore = Ext.StoreManager.lookup('Contacts');
return contactStore.getById(value).get('full_name');
}
}, {
나는 당신이 렌더러 또는 테이블 뷰 중 하나를 해킹 할 것이라 생각합니다. 첫 번째 경우에는 연락처 저장소가 페이지 당 25 개의 요청을로드한다는 것을 의미합니다. 그걸 고려해 봤니? 나중에 경우에 연락처 저장소에 25 개의 임의 연락처를 한 번에로드 할 수있는 방법이 있습니까? – rixo
저는 이것을 수행하는 몇 가지 다른 방법에 대해 읽었습니다. (1) 별도의 저장소가 있고 페이지의 데이터를 기반으로 해당 저장소를로드하는 것 (2) 관련 모델을 사용하여 그리드 저장소 (3)의 추가 필드로 이름을로드하고 이름을 가져 오는 것은 관련 매장 (들) ........ 다른 사람들의 사례를 찾을 수는 없지만 .... Rixo는 무엇을 추천하겠습니까? – MacGyver
서버를 제어 할 수 있다면 그리드 모델에 이름 필드를 확실히 추가 할 수 있습니다. 그러면 많은 요청을 줄일 수 있고 코드를 훨씬 간단하게 만들 수 있습니다. 따라서 더 안정적입니다. 대답을위한 – rixo