행 추가 또는 삽입
RealGrid에서 행을 추가/삽입하는 방법은 두가지가 있습니다.
- DataProvider에서 추가하는 방법
- GridView에서 추가하는 방법
두가지 방법에는 약간의 차이가 있습니다.
가장 큰 차이점은 GridView에서 행 추가는 commit()되기 전까지 ESC키를 입력하여 행 추가를 취소(Cancel)할 수 있습니다.
commit()되어 행이 완전히 추가된 상태라면 행 삭제를 통해 삭제해야합니다.
그리고 다른 차이점으로는 DataProvider에서 행 추가시에는 사전에 지정한 데이터를 같이 추가할 수 있습니다.
아래 데모를 살펴보세요.
행 추가/삽입시 발생하는 이벤트들은 이벤트 발생 순서에서 확인하세요.
DataProvider에서의 행 추가/삽입
빈 행이나 개발자가 사전 입력한 정보 등을 이용하여 DataPrvoider에 한 행을 추가할 수 있습니다.
DataProvider에 새로운 행이 추가되면 그것과 연결된 그리드들에 바로 반영됩니다.
데이터를 추가하기 위한 함수들
사용자가 입력한 정보 등을 이용하여 DataPrvoider에 한 행을 추가할 수 있는 함수들 입니다.
데이터 행 추가
LocalDataProvider의 특정 행 위치에 새로운 행을 추가합니다.
function insertEmptyRow() {
var row = gridView.getCurrent().dataRow;
dataProvider.insertRow(row, {});
//gridView.showEditor(); //바로 편집기를 표시하고 싶을때
}
function insertRow() {
var row = gridView.getCurrent().dataRow;
var values = {KorName: "새이름", Gender: "새성별", Phone: "새전화번호", KorCountry: "새투자국가"};
dataProvider.insertRow(row, values);
//gridView.showEditor(); //바로 편집기를 표시하고 싶을때
}
LocalDataProvider의 마지막 행 다음에 새로운 행을 추가합니다.
function addEmptyRow() {
var dataRow = dataProvider.addRow({});
gridView.setCurrent({dataRow: dataRow}); //추가된 행으로 포커스 이동
//setTimeout(function(){gridView.showEditor();}, 10); //바로 편집기를 표시하고 싶을때
}
function addRow() {
var values = {KorName: "새이름", Gender: "새성별", Phone: "새전화번호", KorCountry: "새투자국가"};
var dataRow = dataProvider.addRow(values);
gridView.setCurrent({dataRow: dataRow}); //추가된 행으로 포커스 이동
//setTimeout(function(){gridView.showEditor();}, 10); //바로 편집기를 표시하고 싶을때
}
GridView에서의 행 추가/삽입
그리드의 editOptions.insertable이 true이면 사용자는 Insert키로 행 삽입을 시작할 수 있습니다. editOptions.appendable이 true이면 마지막 행에서 아래 화살표 키로 행 추가를 시작할 수 있습니다.
셀 편집 중 Esc 키를 누르면 셀 편집이 취소되고, 셀 편집 중이 아닌 상태에서 Esc 키를 누르면 행 추가가 취소됩니다.
또한 개발자가 javascript 메소드를 통해 사용자 삽입/추가를 시작할 수 있습니다.
삽입 / 추가 가능 설정
그리드에서 삽입과 추가를 가능하게 하려면 setEditOptions()을 사용하여 insertable, appendable 속성을 true로 반드시 지정하여야 합니다. 주의 해야 할 것은 해당 속성이 true이면 사용자가 Insert키나 그리드 마지막 행에서 아래 화살표 키를 입력시 빈행이 추가되는 것 입니다.
gridView.setEditOptions({
insertable: true,
appendable: true
});
행 삽입
editOptions.insertable이 true일때 사용자가 Insert
key로 행을 삽입할 수 있습니다. Shift
+ Insert
Key로도 행 삽입이 가능하며 이 경우 현재 선택된 행 아래에 행이 추가 됩니다.
beginInsertRow()를 통한 행 삽입
function btnBeginInsertRow() {
var curr = gridView.getCurrent();
gridView.beginInsertRow(Math.max(0, curr.itemIndex));
//setTimeout(function(){gridView.showEditor();}, 10); //바로 편집기를 표시하고 싶을때
}
function btnBeginInsertRowShift() {
var curr = gridView.getCurrent();
gridView.beginInsertRow(Math.max(0, curr.itemIndex), true);
//setTimeout(function(){gridView.showEditor();}, 10); //바로 편집기를 표시하고 싶을때
}
행 추가
editOptions.appendable이 true일때 가장 마지막 행에서 사용자가 Down Arrow
key로 행을 추가할 수 있습니다.
beginAppendRow()를 통한 행 삽입
function btnBeginAppendRow() {
gridView.beginAppendRow();
//setTimeout(function(){gridView.showEditor();}, 10); //바로 편집기를 표시하고 싶을때
}