그리드에 값 넣기
화면 구성이나 특별한 요구에 대응할 수 있도록 셀 단위, 행 단위 혹은 여러 행을 동시에 DataProvider에 직접 변경 할 수 있거나 추가할 수 있습니다.
dataProvider에서 사용하는 index는 dataRow, GridView에서 사용하는 index는 itemIndex 입니다.
이 두 index는 처음 데이터 로드시 차이가 없으나 소트, 필터링, 그룹핑시에는 차이가 발생 합니다.
dataRow는 처음 데이터가 로드된 이후 행 삽입, 삭제가 없는 경우 변경되지 않습니다. (소트시 화면에 보이는 순서와 차이가 발생)
itemIndex는 사용자 눈에 보이는 순서 입니다.
행 데이터를 수정하는 경우 아래 데모를 참고하세요. 행 데이터 수정
편집시 발생하는 이벤트들은 이벤트 발생 순서를 확인하세요.
그리드 값을 넣기 위한 함수들
dataProvider
의 값을 넣기 위한 함수 입니다.
gridView
의 값을 넣기 위한 함수 입니다.
그리드에 값 넣기
데이터 셀(한 행의 한 필드)의 값을 변경할 수 있습니다. 아래 그리드는 이름순으로 정렬이 되어 있는 그리드 입니다. dataProvider, gridView의 setValue를 눌러 차이를 확인하세요.
아래 그리드는 이름으로 정렬되어 있습니다.
dataProvider.setValue()
var current = gridView.getCurrent();
var dataRow = current.dataRow;
var fieldName = current.fieldName;
var value = "Cell (" + fieldName + ", " + dataRow + ")";
dataProvider.setValue(dataRow, fieldName, value);
gridView.setValue()
var current = gridView.getCurrent();
var itemIndex = current.itemIndex;
var fieldName = current.fieldName;
var value = "Cell (" + fieldName + ", " + itemIndex + ")";
gridView.setValue(itemIndex, fieldName, value);
주의사항
DataProvider의 데이터 함수를 호출하는 시점에 그리드가 편집 중이라면 "Clinet is editing"
에러가 발생하게 됩니다.
사용자 편집과 DataProvider 함수 호출을 동시에 진행할 수 없습니다.
반드시 gridView.commit(), gridView.cancel() 호출로 먼저 사용자 편집을 완료한 후 dataProvider 함수를 호출해야 합니다.