2011-04-13 3 views
1

어떻게 든 "현재 선택된 레코드"를 내 GridPanel에 저장하려고합니다. 그런 다음 GridPanel을 삭제하고 다시 만들고 "현재 선택한 레코드"를 다시 설정하려고합니다.ExtJs. 고아 인 "gridPanel에서 선택된 항목"을 만드는 방법?

가장 좋은 방법은 무엇입니까?

PS : 또는 당신이 대답 할 수, 레코드의 "ID"에 의해 GridPanel에서 레코드를 선택하는 방법

+0

왜 전체 gridPanel 삭제를

1) gridPanel에있는 레코드의 인덱스를 가져옵니다? 레코드를 변수에 저장하고 저장소를 지우고 그 단일 레코드로 gridStore를 다시 채우는 것이 더 효과적이지 않습니까? 아마도 코드가 적을 것입니다. – StevenMcD

+0

잘 .. 그냥 내 애플 리케이션 requre 그래서 ... 한 장소에서 그리드를 삭제하려면, 다음 다른 장소에서 그것을 만들 ...하지만 내가 그렇게하면, 나는 "현재 선택한 레코드"를 잃고 ... –

+0

그래서 busicly 내 애플 리케이션 requre 한 곳에서 다른 곳으로 "이동 gridPanel .. –

답변

4

내가 호출하여 변수에 기록을 저장하고 생각할 수있는 최선의 방법 (예를 들어) :

var record = gridPanel.getSelectionModel().getSelected(); 

가 다음 필요할 때마다 새로운 그리드에 바인딩 새로운 gridStore 구조를 가정 그리드를 다시 이전 gridStore과 동일합니다, 당신은 호출 할 수

gridStore.add(record); 

그러면 레코드를 새 저장소에 추가하고 새 gridPanel에 레코드를 추가해야합니다. 그것이 도움이되기를 바랍니다. 나는 당신의 질문을 올바르게 이해하기를 바랍니다.

편집 : 당신은 또한 호출하여 레코드를 선택할 수 있습니다 gridPanel.store.getById("id");

EDIT2 :

그래서이 일을하는 데 필요한 기록의 ID를 기반으로 gridPanel의 행을 선택합니다.

var recordIndex = gridPanel.store.getIndexById("id"); 

2) 인덱스를 사용하여 gridPanel에서 레코드를 선택 :

gridPanel.getSelectionModel().selectRow(recordIndex); 
+0

당신은 거의 나를 잡아 ...이 다른 방식으로 보자 .. 나는 두 개의 GridPanels을 가지고, 둘 다 다른 매장에 바인딩 (로드 같은 장소에서 데이터) (그래서 data1 === data2) .. 이제 첫 번째 GridPanel에서 하나의 행을 선택하고 다른 GridPanel에서 "동일한"행 (예 : "id"가 같은 행)을 선택하고 싶습니다 ... –

+0

아 좋아, 네, 이해 해요! 몇 분만 기다려주세요. 뭔가 끝내기 만하면됩니다. 어떻게해야하는지 잘 압니다. – StevenMcD

+0

ExtJs4에서 작동하도록 일부 코드가 변경되었지만 마법처럼 작동합니다. :) –

관련 문제