2015-01-08 2 views
1

모든 그리드의 목록 저장소 값을 가져 오려고 할 때 저장소의 모든 데이터를 제공하는 대신 사용자의 현재보기Sencha GXT Grid 위젯 ListStore.getAll()은 부분 데이터 만 반환합니다

예 : 애플

: 2 :

3 보이 : 개

4 : 주스

나는이

1과 같은 형태 그리드가

5 : 슬라이드

6 : 자바

7 : 파이썬

8 : PHP

9 : 키보드

10 : 레이크

그러나, 실시간 그리드에서 볼 때, 현재 창에서 사용할 수있는 것은 5 개 뿐이며 나머지 10 개는 "은폐"되어 있습니다. 사용자가 그리드 위젯의 스크롤 막대를 사용하여 나머지 데이터를 볼 필요가 있음을 의미합니다. 내 질문은 내가 전체 목록 저장소와 상호 작용할 수 있는지 어떻게 확인할 수 있습니까? ,

List<Event> listData = listStore.getAll(); 
for (Event event : listData) { 
    event.setText(event.getText()+" altered!"); 
    listStore.update(event); 
} 

인라인 편집 가능한 그리드를 사용하고, 한 번 더 가능성이있다 :

+0

'ListStore.size()'가 올바른 카운트를 반환하는지 확인하십시오. 또한'ListStore.findModelWithKey (String)'을 호출하여 숨겨진 레코드를 찾을 수 있는지 확인하십시오. 그렇지 않으면 모든 데이터에 동시에 액세스해야하는 경우 그리드의 페이징을 비활성화해야합니다. 페이징을 사용할 때 GXT 그리드가 숨겨진 행을 유지하지 않는다고 생각합니다. – gknicker

+0

ListStore.size()는 잘못된 개수를 반환합니다. 페이징을 비활성화하려면 어떻게합니까? – sudobangbang

+0

'PagingLoader' (Grid.setLoader (ListLoader)) 대신 일반'ListLoader'가 있다는 것을 알고 있습니다. 도움이되지 않으면 Grid를 만들고 구성하는 코드를 게시하십시오. 또한 [Sencha Javadoc] (http://docs.sencha.com/gxt/3.1/javadoc/index.html)에서 그리드 구성에 사용되는 클래스의 비 페이징 버전을 확인할 수 있습니다. – gknicker

답변

0

수동으로 그리드 데이터를 변경하는 경우, 당신은 listStore 개체의 업데이트 메서드를 호출해야합니다, 여기에 몇 가지 예제 코드 모눈 데이터를 변경하는 경우 목록 저장소에서 커밋 변경 메서드를 호출해야합니다. 예를 들면 다음과 같습니다.

listStore.commitChanges(); 

이 정보가 도움이되기를 바랍니다. 그렇지 않으면 문제를 더 잘 이해할 수 있도록 코드를 게시하십시오.

+0

기본적으로 그리드 데이터를 변경하고 있습니다. 내 이전 질문과 그리드를로드합니다. 초기 변경시에는 문제가 없지만 사용자가 위 또는 아래로 스크롤하면 데이터가 수정되지 않고 원래 데이터로 다시 변경됩니다. – sudobangbang

+0

어떻게 그리드 데이터를 변경합니까?내 경험에 비추어 볼 때 처음에는 잘못된 방식으로 처리합니다. 예를 들어 listStore에서 데이터 객체를 가져 와서 변경하는 것과 같습니다. 그리드 데이터를 변경하는 열쇠는 코드 끝에 업데이트 메소드를 호출하는 것입니다. 호출 했습니까? –

관련 문제