2012-04-04 4 views
0

매핑 된 저장소가있는 ExtJS 그리드가 있습니다.ExtJS 그리드 선택 모델

상점에 대한 JSON 응답에 20 개의 필드가 있지만 상점에 10 개의 필드 만 맵핑했습니다. 나에게 상점에서지도를 표시하지 않고도 다른 10 개의 필드를 얻을 수 있습니까? 아니면 모든 필드를 상점에 매핑해야합니다. 그리드의 행 선택 이벤트에서이를 수행합니다. 코드의 경우 그리드를 만들고 저장소를 매핑하고 이벤트를 실행하고 매핑 된 10 개의 필드가있는 선택된 행의 레코드를 가져올 수 있습니다.

제안 사항

Shekhar의 요청에 따라 :

스토어 정의

Ext.define('gdoc.store.PrintPaperStore', { 
    extend: 'Ext.data.Store', 

    constructor: function(cfg) { 
     var me = this; 
     cfg = cfg || {}; 
     me.callParent([Ext.apply({ 
      autoLoad: true, 
      storeId: 'PrintPaperStore', 
      proxy: { 
       type: 'ajax', 
       url: 'urlToRetrieveTheJSON', 
       reader: { 
        type: 'json', 
        root: 'root' 
       } 
      }, 
      fields: [ 
       { 
        mapping: 'value', 
        name: 'value' 
       }, 
       { 
        mapping: 'display', 
        name: 'display' 
       } 
      ] 
     }, cfg)]); 
    } 
}); 

json으로 응답 : 나는에서만 '가치'와 '디스플레이'를 매핑 한 볼 수 있듯이

{ 
    "root":[{ 
     "value":"COATED115", 
     "display":"Coated recycled paper (115gms)", 
     "description" : "Good quality", 
     "extra" : "EXTRA INFO" 
    },{ 
     "value":"COATED135", 
     "display":"Coated recycled paper (135gms)", 
     "description" : "Good quality" 
    },{ 
     "value":"OFFSET", 
     "display":"Offset recycled paper (80gms)", 
     "description" : "Good quality", 
     "extra" : "EXTRA INFO" 
    },{ 
     "value":"OTHER", 
     "display":"Other paper (client to order)", 
     "description" : "Good quality", 
     "extra" : "EXTRA INFO" 
    }] 
    } 

상점에서 JSON 응답. '설명'과 '추가'값을 상점에서지도에 표시하지 않고도 다시 사용할 수 있습니까?

+0

ur store 코드를 표시 할 수 있습니까? – Shekhar

+0

질문에 코드를 포함시켜주십시오. 더 잘 도와 드리겠습니다. – joelparkerhenderson

+0

감사합니다. 코드를 추가했습니다. – Zaje

답변

1

모델의 .raw 속성에 액세스 할 수 있습니다.이 모델에는 독자의 원시 JSON이 포함됩니다.

+0

감사합니다. 감사합니다. – Zaje

1

아니요. 모델 또는 상점에서 JSON 데이터에서 사용할 수있는 모든 필드를 설정해야합니다.

추가 필드를 매핑하지 않으려는 이유에 대해 혼란 스럽습니다. 순전히 시간을 절약하고 데이터에 액세스하는 더 빠른 방법이 있었으면 좋겠습니까? 또는 필드 이름이 동적 이길 기대합니까?

역동적 인 이유가있는 경우이 게시물에서 해결책을 찾아보십시오. Dynamic model with ExtJS 4

+0

예 시간 절약 중 하나입니다. 하지만 예 필드 이름이 동적으로 변경되고 내가 작업하는 필드가 20 개가 넘으면 다른 방법으로 액세스 할 수 있는지 궁금합니다. – Zaje

+0

모델/저장소를 즉시 생성하고 그리드의 열을 업데이트하는 방법을 보여주는 링크를 추가했습니다. 그래서 그것을 사용하면 당신이 원하는 결과를 얻을 수 있어야합니다. –

+0

도이 문제를 확인합니다. Jamie – Zaje