2012-02-24 4 views
2

그리드에 행 편집기를 플러그인으로 추가했습니다 (new Ext.ux.grid.RowEditor()). 특정 레코드의 특정 열에 초점을 맞추고 싶습니다.ExtJs 3.4 그리드의 특정 셀에서 편집 시작

이것은 내가 지금 가지고있는 것입니다 : editor.startEditing(record);;

편집을 시작하고 첫 번째 필드에 포커스를 설정하지만 다른 필드를 정의하고 싶습니다. 웹 검색하기 나는 사람들이 : editor.startEditing(record, column) 또는 editor.startEdit(record, column) 첫 번째가 작동하지 않는 것처럼 보입니다. 후자의 기능은 존재하지 않습니다.

솔루션은 'RowEditing'플러그인에 의존 할 수 있지만 ExtJs는 새로운 것이므로 어떻게하는지 이해할 수 없습니다.

모든 도움을 주시면 대단히 감사하겠습니다.

답변

3

내가 ExtJS로 4.0.2에서 행 편집기를 사용하여 그리드를 사용하고 내가 프로그래밍 방식으로 행을 추가하고이 코드로 편집을 시작 : 시도하여 프로그래밍 시간을 낭비하기 전에

var editor = grid.getPlugin('myRowEditor'); 
grid.getSelectionModel().select(lastRowCounter); //0 based selector. 
editor.startEdit(lastRowCounter,1); //start editing on Second column. 
+0

ExtJs 4라고 가정하여 실수를했지만 실제로는 3.4입니다. 어쨌든 귀하의 답변을 주셔서 감사합니다, 그것은 나를 깨닫게했다. 나는 아직도 내 문제를 해결하는 방법을 모르지만 해결책을 찾기 위해 시작해야한다. – user618505

3

, 난 당신을 추천합니다 소스를 읽을 수 있습니다.

RowEditor에서 : startEditing: function(rowIndex, doFocus). 따라서 두 번째 매개 변수가 있지만 인덱스가 아닙니다. onRowDblClick을 읽으면 먼저 startEditing에 포커스를 해제하고 doFocus으로 포커스를 맞출 셀을 처리합니다.

그런데 doFocus은 DOM 이벤트 (사용자가 클릭 한 곳)에 따라 다릅니다. 이러한 이벤트가 없다면 해당 기능에서 영감을 얻을 수 있습니다. ColumnModel#Column#getEditor()에서 가져온 열 편집기에서 focus()을 호출하기 만하면됩니다.

+0

감사합니다. 2016 년에 당신의 말은 http://docs.sencha.com/extjs/6.0.1/classic/src/CellEditing.js.html#Ext.grid.plugin.CellEditing-method-startEditByPosition을 사용하여 끝났습니다. –

관련 문제