2013-10-02 3 views
0

ExtJS 4.2.x에는 그룹화 된 격자가 있습니다. 데이터를 다시로드하면 이전에 선택한 행을 다시 선택하려고 시도합니다. 그러나 그룹이 여러 개있는 경우 모든 그룹을 축소합니다. 이제는 선택한 행이 있지만 그룹이 축소되어 숨겨져 있습니다. 해당 행이있는 그룹을 확장하고 싶습니다.ExtJS 4.2.x 선택한 그리드 행이있는 그룹을 찾으려면 어떻게합니까?

선택한 행이 속한 그룹을 어떻게 찾을 수 있습니까?

상위 그룹을 결정하기 위해 CSS 클래스를 사용하는 솔루션을 피하고 싶습니다. 상위 그룹이 ExtJS 주요 릴리즈에서 변경되는 경향이 있기 때문입니다.

편집 : 다른 개발자가 다른 것을 변경하고 내 문제가 더 이상 존재하지 않는 것으로 확인되어 테스트하지 않았습니다. 그러나 지적 운동으로서 ... 이것은 괜찮은 해결책 인 것 같습니다. 많은 기록에서 잘 수행되지 않을 수도 있습니다. 그리고 forEach를 사용하면 올바른 그룹이 발견되면 수표를 단락시킬 방법이 없습니다.

그 밖의 더 나은 솔루션이 있습니까?

// where this = store 
if (this.isGrouped()) { 
    var groups = this.getGroups(); 
    Ext.Array.forEach(groups, function (item, index, allGroups) { 
      if (Ext.Array.contains(item.children, record)) { 
       grid.getFeature('grouping').expand(item.name); 
      } 
     }); 
} 

답변

0

사용자 그룹을 확장 할 그룹 필드 데이터. 나는 필드 년별로 그룹화 된 가게를 가지고있다.

// where this = store 
// node = selected row in data store 
// my group field is year 
if (this.isGrouped()) { 
    var group = psGrid.getView().getFeature('grouping'); 
    group.expand(node.data.year); 
} 
+0

매우 깨끗한 용액. 감사! – jkyoutsey

0

Ext.ComponentQuery을 사용해 보셨습니까? 이는 구성 요소의 속성 인 xtype에 의존합니다. 이것은 CSS 선택기에 의존하는 것보다 훨씬 뛰어나며 Ext 구성 요소 아키텍처를 활용하므로 훨씬 강력합니다.

코드를 제공 할 수는 없지만 여전히 extjs를 배우고 있습니다.

+0

"행이 속한 그룹을 찾는 올바른 방법은 무엇입니까?"와 마찬가지로 MECHANISM (CSS 클래스를 선택하는 것이 허약하다는 것을 알고 있습니다.)과 관련이 없습니다. – jkyoutsey

+0

예, 귀하의 권리는 CSS로 선택하는 것이 허약합니다. 그래서 xtype을 사용하여 선택하는 것이 안전합니다. 그것은 확실히 CSS를 선택하는 것보다 낫지 만, 최선의 방법인지는 말할 수 없습니다. –

+0

@jkyoutsey 질문을 편집하여 더 나은 해결책을 찾았습니다. –

관련 문제