2016-09-26 3 views
1

표가있는 경우 선택한 행을 복제하려고합니다.특정 위치에 행 복제

그런 다음 선택한 행 바로 다음의 모눈 위치에 행 복사본을 삽입하려고합니다.

바이올린 : https://fiddle.sencha.com/#fiddle/1hc6

var grid = this.up('grid'); 
var record = grid.getSelectionModel().getSelection()[0].copy(null); 

var store = grid.getStore(); 
var row = store.indexOf(record); 

store.insert(row, record); //store.insert(row + 1, record);????? 

나는이 내려 변수 명명하는 솔루션

+0

. 레코드의 색인을 가져 와서 복사하십시오. –

+0

감사합니다. 문제를 일으키는 것은이 세부 사항이었습니다. 이제 제대로 작동합니다. – josei

답변

4

와 바이올린을 편집했다. record 변수는 실제로 사본입니다. 따라서 저장소에 대한 레코드를 검색 할 때 행 인덱스 변수는 인덱스 -1을 반환하므로 끝에 (아마도 저장소 API의 기본 동작) 삽입되었습니다.

아래의 변화는 당신이 원하는 것을 얻을 것이다 : 당신은 같이 IndexOf를 복사 한 기록을 얻기 위해 노력하고

var record = grid.getSelectionModel().getSelection()[0]; 
var copy = record.copy(null); 
... 
var row = store.indexOf(record); // this used to be -1 
store.insert(row, copy); 
+0

감사합니다. Nelson, Evan이 나를이 세부 사항에주의를 끌었습니다. 코드 및 설명을 도와 주셔서 감사합니다. – josei

+0

문제 없어요, 대단합니다. – Nelson