2012-02-28 1 views
2

단일 페이지에는 같은 열이지만 표시 할 레코드가 다른 두 개의 눈금이 있다고 가정합니다.EXTJS4 : 동일한 저장소의 데이터이지만 다른 레코드가있는 각 눈금을 표시하는 Approch

가 여기에 두 가지 해결책이 될 수 : 그리드를 렌더링하기 전에 가게에

  1. 사용 동일 모델 및 저장 및 필터. 이 솔루션의 잠재적 인 문제 : 기본 저장소가 동일하므로 두 번째 눈금이 일 때 첫 번째 눈금에서 필터가 지워집니다.

  2. 다른 저장소 정의 및 모델 정의 (프록시 및 필드를 다른 저장소/모델 정의와 동일하게 유지하면서 이름을 변경하는 것)를 사용하십시오. 문제점 : Pandora 응용 프로그램에서이 문제를 시도해 보았습니다. 두 번째 표에는 레코드가 표시되지 않았습니다.

어떤 방법이 더 효과적이며 해당 문제를 해결할 수 있습니다.

가기 : : Ext.create를 ('의 mystore 고마워요

+0

샤의 접근 방식은 확실히 좋은 것이 아니다 ... 그것은 작동하지만, 그렇지 이것을 달성하는 가장 좋은 방법 :

UPDATE 여기

는 저장소 개체를 복제하는 코드 샘플입니다! 나는 DmitryB의 솔루션도 추천한다. 두 번째 표가로드되지 않은 경우 두 번째 저장소에서 load()를 호출하는 것을 잊었을 수 있습니까? –

+0

이 작업을 수행하는 유일한 방법은 다른 저장소를 만드는 것입니다. 흠 ... – Geo

답변

0

내가 데리고 가게의 동일한 인스턴스를 참조하지만, 각 격자에 대한 상점의 새로운 인스턴스를 생성하지 않는 것이 좋습니다 접근

', {...});

1

우리 프로젝트에서 똑같은 문제에 직면했습니다. (당신이 구글 할 수 있습니다 당신이 모든 기록을 가진 첫번째 그리드

  • 복제 저장소 개체의 서버에서 하나 개의 모델 하나 개를 저장 클래스
  • 로드 저장을 정의

    • : 나는 다음과 같은 방법을 사용하여 종료 방금 로컬 복사본이 필요하거나 서버에 동일한 데이터 소스에 연결하는 것이 복사 여부를 결정하기 위해 필요한이 시점에서)
    • 을이 작업을 수행하는 방법을 정확히 - 모두 구현이
    을 필요에 따라 할 수있다

    필요한 경우 복제 용 샘플 코드를 게시 할 수 있습니다.

    cloneStore: function(store, storeClass) { 
        var new_st = Ext.create(storeClass), 
         recs = [], 
         filter; 
    
        store.each(function(r) { 
         recs.push(r.copy)} 
        ); 
        new_st.add(recs); 
    
        return new_st; 
    }, 
    
  • +0

    * "필요한 경우 복제 용 샘플 코드를 게시 할 수 있습니다."* : 나는 이것이 오래된 것을 알고 있지만 일부 코드를보고 싶습니다. –

    +0

    @jsve - 가보세요. – sha

    관련 문제