2026/04/29

오늘의 이야기

 



DevExpress DxDataGrid에서 셀 편집 제어 및 포커스 설정


datagrid



 


이번 글에서는 DxDataGrid에서 행이 추가된 이후 특정 셀의 편집을 막고, 커서를 원하는 컬럼으로 이동시키는 방법에 대해 살펴봅니다.


🎯 특정 셀 편집 막기


행이 추가된 후 특정 셀을 편집 불가능하게 만들기 위해선 행에 플래그를 추가하거나 조건부 설정이 필요합니다.


onRowInserting: function(e) {
// 행 데이터 설정
e.data.isNewRow = true;
}

이후 그리드 설정에서 셀 편집을 막는 방법:


cellPrepared: function(e) {
if (e.rowType === "data" && e.data.isNewRow && e.column.dataField === "ComboColumn") {
e.cellElement.css("pointer-events", "none");
e.cellElement.css("background-color", "#f0f0f0");
}
}

🧭 커서를 두 번째 컬럼으로 이동시키기


새 행이 삽입된 후 두 번째 컬럼으로 커서를 이동시키려면 editCell 메서드를 사용합니다.


onRowInserting: function(e) {
setTimeout(function () {
const grid = $("#gridContainer").dxDataGrid("instance");
const rowIndex = grid.getVisibleRows().length - 1;
grid.editCell(rowIndex, "SecondColumn"); // 컬럼 이름은 실제 dataField로!
}, 0);
}

📌 요약



  • 편집 제한: 셀의 pointer-events를 제거하여 마우스 입력 차단

  • 포커스 이동: 새 행 추가 후 editCell로 특정 셀에 커서 설정


DxDataGrid의 커스터마이징은 정말 유연해서 다양한 시나리오에 대응할 수 있습니다. 위 예제를 바탕으로 더 발전시킨 기능도 얼마든지 구현할 수 있어요. 필요하시다면 팝업 편집 모드서버 연동 방식에 대한 내용도 추가로 알려드릴게요!





댓글 없음:

댓글 쓰기

오늘의 이야기

5장. 성능·배터리 최적화   이 장의 목표는 “빠르고 오래 가는 워치 앱”을 만드는 것입니다. 작은 화면에서 느림은 바로 이탈로 이어지고, 배터리 소모는 곧 별점 하락으로 연결됩니다. 지금은 완벽한 초최적화보다, 체감 품질을 확 끌어올리는...