date picker에서 holidays 설정 시 해당 일자를 선택 가능하도록 holidaySelectable 속성 추가
var columns = [{
name: "FirstDate",
fieldName: "first_date",
width: "120",
styles: {
datetimeFormat: "yyyy-MM-dd",
textAlignment: "center"
},
editor: {
type: "date",
holidays: [{
type: "day",
days: ["일"],
color: "#ff0000",
description: "휴일"
}, {
type:"date",
dates:["2016/05/05", "2016/05/14"],
color: "#00ff00",
}],
holidaySelectable: true
}
},
...
]
grid.setColumns(columns);
신규
-
그룹컬럼이 특정컬럼의 소팅상태와 상호 동기화가 가능하도록 개선 sortBindColumnName
-
grid 헤더에도 celltip을 적용가능하도록 개선
CelltipLocation프로퍼티 및
관련 예제 참조.
-
contextMenu 스타일 지정기능 추가
contextMenu는 html로 구성되어있기 때문에 그리드 스타일개요룰을 따르지 않고 html css를 적용해야한다
grid.setDisplayOptions({
contextMenuStyles:{
background : "rgb(247, 247, 247)",
color: "#111", //font
separatorColor : "#777",
hoveredColor: "#fff", //font
hoveredBackground : "#555",
inactiveColor: "#aaa", //font
fontFamily: "Tahoma", //font
fontWeight: "normal", //font
fontStyle: "normal" //font
}
});
개선
-
그룹컬럼 resize시 자식컬럼의 마지막컬럼만 resize되는 기능 추가 (onlyResizeLastChild)
var columns = {
type: "group",
name: "group1",
onlyResizeLastChild: true,
columns:[...]
};
grid.setColumns(columns);
var group = grid.columnByName('group1');
group.setOnlyResizeLastChild(true);
-
asyncPaste 셀 붙여넣기 시 비동기로 붙여넣기가 가능하도록 개선
grid.setOptions({
edit: {
asyncPaste: true
}
});
-
grid onPaste 이벤트 다중 셀 붙여넣기 시 붙여넣기되는 rows들을 인자값으로 넘기도록 개선
-
엑셀다운로드 XLS 공격방지 개선 (시트에서 = 문자열로 시작되는 시트가 있을경우 = 문자열 제거) preventXLSAttack
-
checkbar에 showAll 옵션을 false로 변경 시 text가 있는 경우 text는 보여지도록 개선
-
체크박스 컬럼 displayBox true 설정 시 나오는 box 색상을 설정할 수 있도록 개선
-
OS 텍스트,앱 배율을 크게 늘릴경우 그리드가 확대되어 표현되는 현상 개선
-
enterToTab 옵션 적용시 다음 row로 건너뛰는 기능 및 마지막 셀에서 최초 셀로 돌아오는 기능추가crossHomeWhenExitLast 옵션이 추가됨.
grid.setOptions({
edit: {
crossHomeWhenExitLast: true
}
});
-
컬럼의 ImageList를 동적으로 변경했을때 이미지객체를 즉시 적용하도록 개선
-
ListCellEditor를 가진컬럼에서 값을 keyin 으로 입력 후 list 요소 선택 시 선택이 되도록 개선
-
엑셀 다운로드 시 셀에 들어가는 문자열들에 대한 가공 callback 추가
-
그리드 붙여넣기 직전 붙여넣는문자열에 대한 가공 callback 제공 개선
-
가로스크롤 이동 범위 변경 옵션추가
-
editor 옵션에 placeholder 추가
오류
-
그리드 엑셀 다운로드 시 Number Type형태의 컬럼에서 빈값인 셀이 존재할경우 오류 수정
-
컬럼의 stylecallback에서 리턴한 borderstyle이 일부 적용되지 않는 오류 수정
-
dom버전 사용시 setStateWidth 를 0으로 사용할경우 오류발생 해결
-
groupby사용시 그룹된 데이터를 수정하면 그룹핑이 정상적으로 되지 않는 현상 해결
-
EditOptions의 erasable사용시 편집중에 delete키로 셀 데이터 전체가 삭제되는 현상 해결
-
2depth 이상의 그룹 컬럼이 존재할때 마지막에 위치한 row 삭제 시 오류 발생 해결
-
charColumn이 포함된 그리드 엑셀 export시 오류 발생 해결
-
groupBy 사용 시 onEditCellUpdated 시점에 grid의 commit 호출 시 특정로우가 흰색으로 보이지 않는현상 해결
-
2레벨 이상의 그룹컬럼에 merge가 존재하며 merge 컬럼이 위치가 두번째이상 위치에 있을경우 merge 셀 위치가 틀어지는문제 해결
-
그리드 엑셀 다운로드 시 셀에 특수 화살표()가 포함돼있으면 오류 해결
-
onPaste 이벤트 리스너에서 false 리턴 시 에도 onEditRowPasted 이벤트가 발생하는 문제 개선
-
IE에서 컬럼의 크기가 그리드보다 큰경우 에디팅 시 에디터가 보이지 않는문제 해결
-
그리드 엑셀 다운로드 시 컬럼이 856개가 넘어갈경우 엑셀이 정상적으로 다운로드 되지 않는현상 해결
-
Grid Block Selection과 컬럼영역이 겹쳐지는 문제 해결
신규
-
엑셀출력시 시트명을 지정할수 있는sheetName 옵션이 추가됨.
DataLudi.exportToExcel(grdMain, {
taregt: "local",
fileName: "smart-datagrid.xlsx",
sheetName: "시트명"
});
샘플 참조: ExcelExporting
-
엑셀 출력시 제외시킬 컬럼이름을 배열형태로 지정하여 출력할수있는excludeColumns 옵션이 추가됨.
DataLudi.exportToExcel(grdMain, {
taregt: "local",
fileName: "smart-datagrid.xlsx",
excludeColumns: ["col1","col2"]
});
샘플 참조: ExcelExportColumns
-
숨겨진 컬럼을 모두 포함하여 엑셀내보내기를 할수있는 allColumns 옵션이 추가됨.
DataLudi.exportToExcel(grdMain, {
taregt: "local",
fileName: "smart-datagrid.xlsx",
allColumns: true
});
샘플 참조: ExcelExportColumns
-
서버로 전달되는 form태그가 iframe내에서 생성되어 전달되게 할수있는remoteActionIframe 옵션이 추가됨.
DataLudi.exportToExcel(grdMain, {
target: "remote",
url: 'excelDownload.do',
fileName: "smart-datagrid.xlsx",
remoteActionIframe: true
});
-
하나의 엑셀파일에 여러개의 그리드를 시트별로 다운받을수있는multiExportToExcel 함수가 추가됨.
new DataLudi.multiExportToExcel({
target: "local",
fileName: "multi-export.xlsx",
targetGrids:[
{sheetName: '시트1', targetGrid: grdMain1},
{sheetName: '시트2', targetGrid: grdMain2}
]
});
샘플 참조: ExcelMultiExport
-
엑셀출력시 그룹푸터의 값을 변경할수있는groupFooterCallback 옵션이 추가됨.
new DataLudi.GridExcelExporter().export(grdMain, {
target: "local",
fileName: "dataludi.xlsx",
groupFooterCallback: function(rowGroupFooter, column, value){
if(value == null){
return "";
}else{
return "$" + value;
}
}
});
-
엑셀출력시 서버측으로 전달할 파라미터를 Object로 구성하여 전달한다 remoteParams 옵션이 추가됨.
new DataLudi.GridExcelExporter().export(grdMain,{
target: "local",
fileName: "smart-datagrid.xlsx",
remoteParams: {
_csrf : 'xxxxxxxxxxxxxx',
param1: 'xxxxx'
}
});
샘플 참조: ExcelExporting
-
엑셀출력시 페이징을 사용하는 경우 화면상에 보이지 않는 데이터도 함께 내보기할수있는pagingAllItems 옵션이 추가됨.
new DataLudi.GridExcelExporter().export(grdMain,{
target: "remote",
url: 'excelDownload.do',
fileName: "smart-datagrid.xlsx",
pagingAllItems: true
});
샘플 참조: ExcelExporting
-
단일 데이터를 복사하여 붙여넣기 할때 블럭지정이 되어있으면 블럭지정된된 영역에 복사한 데이터가 모두 붙여넣기가 되는 pasteToSelection 옵션이 추가됨.
grdMain.setEditOptions({
pasteToSelection: true
});
샘플 참조: ClipboardPaste
-
CheckBar가 마우스 좌클릭을 통해서만 동작할수있는 checkedOnlyLeftClick 옵션이 추가됨.
샘플 참조: CheckBar
-
초기화 기능(데이터목록, 체크컬럼헤더, 체크바 헤더, 컬럼소팅, 필터) 추가됨. (initializeReuse)
grdMain.initializeReuse();
-
lookupDisplay를 사용하는 컬럼에서 라벨값을 붙여넣기 할경우 value값으로 변경하여 값이 지정되는 labelToValueWhenPaste 옵션이 추가됨.
grdMain.setEditOptions({
labelToValueWhenPaste: true
});
//혹은
grdMain.setOptions({
edit:{
labelToValueWhenPaste: true
}
});
-
멀티푸터 기능이 추가됨.(footer count)
사용방법은 아래의 샘플을 참고한다.
샘플 참조: ColumnFooter-Multi
-
onScrollToBottom 이벤트가 발생했을때 이를 구분할수있는 파라미터 추가.(onScrollToBottom)
샘플 참조: LazyLoadData
-
canvasContext공유를 통한 메모리 개선 기능 (setCanvasContextShared)
모든 그리드의 canvasContext를 공유해서 메모리 개선효과를 볼수있다. (자세한 내용은 문서 참고)
DataLudi.setCanvasContextShared(true);
var grdMain1 = DataLudi.createGridView("container");
var grdMain2 = DataLudi.createGridView("container2");
개선
-
cell스타일적용시 fixed셀에 color만 적용되지 않는 현상 개선.
grdMain.body().setCellStyles({
color:"#58d817",
background: "#ff00ffff"
});
-
ColumnHeader에 말줄임 기능을 표현할수있는 기능이 개선됨.
style의 textWrap에 "ellipsis" 를 설정하여 사용가능.
var columns = [{
"name": "Country",
"fieldName": "Country",
"width": "90",
"header": {
"text": "Country가나다라마바사ABCDEFG",
"styles":{
"textWrap": "ellipsis"
}
}
}];
-
단일 Row의 높이가 그리드보다 높은경우가 생기지 않도록 개선.
현재 SMARTdatagrid는 스크롤의 최소 이동 단위가 한개row인데 만약 row자체가 그리드의 body영역보다 클경우 스크롤을 더 내릴수 없어
단일 RowHeight가 그리드의 body영역보다 크면 body영역크기만큼으로 제한하도록 기능 추가
-
편집 불가능한 셀에서 붙여넣기 할 경우 onpaste 이벤트가 동작하게 개선.
-
AutoFill 더블클릭시 셀 아래의 모든행들에 같은 값을 채워지게 하는 기능 추가.
-
appendRows 성능개선.
데이터 10만건을 기준으로 속도가 Chrome: 2420ms -> 276 ms, IE: 8159 ms -> 369 ms으로 개선되었음.
-
엑셀출력시 numberFormat이 GridFooter,GroupFooter에도 적용될수 있도록 개선.
오류
-
선택된 영역의 값들을 undefined로 초기화 해주는 eraseSelection 오류수정
소팅,필터가 적용되어있는 상태에서 초기화될때 오류가 발생하는 현상 수정.
-
단일셀에 붙여넣기시 수정불가능 상태에서 붙여넣기가 되는 현상을 되지 않도록 수정.
-
그룹핑이 되어있는 상태에서 appendRows 시 그룹행의 카운트표시가 한개더 표시됬던 부분 수정.
-
DateCellEditor에서 datetimeFormat과 mask 동시에 사용시 값이 정상적으로 나오지 않는 현상 수정.
-
컬럼 타입이 group이고 layout이 vertical인 경우 그리드의 fitRowHeight 호출 시 하단에 위치한 row가 height가 최소높이보다 작아지는 현상이 수정됨.
-
lookupItemsCallback사용시 키입력후 콤보박스의 값을 방향키로 이동후 선택할때 다른값이 선택되는 현상 수정.
(마우스로 드랍리스트의 목록에서 직접선택할 경우에는 정상 동작)
신규
-
엑셀파일 내보내기시 지정한 컬럼만 다운로드 할수있는 exportColumns 옵션이 추가됨.
다운로드 받을 컬럼의 이름을 배열형태로 지정하거나 columnLayout을 이용하여 컬럼의 배치를 일괄로 변경하여 다운로드가 가능하다.
DataLudi.exportToExcel(grdMain,{
target: "local",
fileName:'grid.xlsx',
exportColumns: ["OrderID" ,"CustomerID","Quantity","OrderDate"]
});
샘플 참조: ExcelExportColumns
-
엑셀파일 내보내기시 타이틀을 지정할수 있는 workbookTitle,workbookSubTitle 옵션이 추가됨.
workbookTitle,workbookSubTitle 각각의 속성은 ExcelWorkbookTitle class를 통해 생성된다.
DataLudi.exportToExcel(grdMain,{
target: "local",
fileName:'grid.xlsx',
workbookTitle:{
titleText:"대출 현황 조회",
height: 50,
styles:{
fontBold: true,
fontSize: 30,
background: "#cdbebe"
}
}
});
샘플 참조: ExcelTitleExporting
-
CheckBar header에 텍스트를 넣을수 있는 headerText옵션이 추가되었다.
grdMain.setOptions({
checkBar: {
headerText: "선택",
width: 60
}
});
샘플 참조: CheckBar
-
ColumnFilter에 필터 여부를 결정 지을수 있는 callback 옵션이 추가되었다.
-
ButtonVisibility에 수정가능상태에 따라 버튼을 표시할수있는 'editable' 상수 추가 추가됨.
-
년-월을 선택할수있는 MonthCellEditor가 신규 추가됨.
var columns = {
name: "OrderDate",
fieldName: "OrderDate",
width: "130",
editor: {
type: "month",
datetimeFormat :"yyyy/MM",
dropDownPosition: "editor",
minDate: new Date(1984,5)
},
styles: {
"datetimeFormat": "yyyy/MM"
}
},
...
];
grdMain.setColumns(columns);
샘플 참조: MonthEditor
-
TreeView에서 아이콘 클릭시 발생되는 onTreeIconClicked 이벤트가 추가됨.
-
ListCellEditor 에서 domainOnly true일 때 빈값을 허용할 수 있는 domainOnlyEmptyValueAllow 옵션이 추가됨.
-
fitRowHeight가 실행되더라도 즉시 화면을 그리지 않는 noRedraw 파라미터 추가.
-
CheckBar에 표현되는 셀의 모양을 이미지를 등록하여 표현할수있는 기능 추가.
checkBoxImageList를 통해 이미지목록을 등록하고 인덱스를 지정하여 사용할수 있다.
grdMain.registerImageList({
name: "checkbar", //아래의 checkBoxImageList에서 사용할 임의의 이름 등록
rootUrl: "/repo/grid/resource/images/",
items: [
"default-checkbox.png", //0
"check-checkbox.png", //1
"default-inactive-checkbox.png", //2
"check-inactive-checkbox.png", //3
]
});
grdMain.setOptions({
checkBar: {
checkBoxImageList:'checkbar',
defaultIconIndex :0, //기본상태
checkedIconIndex :1, //체크된 상태
defaultInactiveIconIndex :2, //비활성화 기본상태
checkedInactiveIconIndex :3, //비활성화 체크상태
}
});
샘플 참조: CheckBar
-
화면에 보여지는 로우의 높이가 자동으로 최적화 될수있는 기능이 추가되었다. fitRowHeightWhenDisplay
내부적으로 fitRowHeight 가 실행되면서 로우높이를 계산하여 처리한다.
샘플 참조: RowHeights
-
RowIndicator의 셀상태를 이미지를 통해 표현 할수있는 기능 추가.
indicatorImageList를 통해 이미지목록을 등록하고 인덱스를 지정하여 사용할수 있다.
grdMain.registerImageList({
name: 'indicatorIcons',
rootUrl: "/repo/grid/resource/images/",
items: [
'rd_inserting.png',
'rd_editing.png',
'rd_focused.png'
]
});
grdMain.setOptions({
edit:{
insertable: true
},
rowIndicator: {
indicatorImageList: 'indicatorIcons',
insertingIconIndex: '0', //insert키를 이용하여 행추할때
updatingIconIndex: '1', //cell데이터 편집시.
focusedIconIndex: '2', //cell에 포커스가 변경됬을때
}
});
샘플 참조: RowIndicator
-
CustomButton에 버튼의 enable,disable상태를 리턴하는
enabledCallback 기능이 추가됨.
-
모바일 환경에서 셀편집시 근처에 보여지는 편집완료/취소를 할수있는 버튼을 숨길수있는 옵션이 추가됬다.
showMobileEditCommand ,
showMobileEditCommandBar
grid.setEditOptions({
showMobileEditCommandBar: false,
showMobileEditCommand: false
});
개선
-
그룹컬럼이 여러개(약 90개) 있을경우 스크롤이 느려지는 현상이 개선됨.
-
마우스 아래 있는 데이터행을 구분하는 mask를 설정하는
rowHoverMask
를 사용시 그리드에서 마우스가 빠졌을때 사라지게 개선됨.
-
ColumnHeader 우측에서 더블클릭시 컬럼너비가 조정되는데 이때
onColumnResized 이벤트가 발생하도록 개선함.
-
ColumnHeaderSummary,ColumnFooter에서
텍스트의 수직 정렬 상태를 지정하는 lineAlignment 가 동작 가능하게 개선됨.
-
ColumnSeries 에서 차트 라벨에 표현되는 값을 numberFormat이 가능하게 개선됨.
-
Chrome 브라우저에서 스크롤이 있는 화면에서 그리드가 하단에 있을때 그리드의 특정 cell을 클릭하면 스크롤이 맨위로 올라가는 현상이 수정됨.
-
데이터 붙여넣기시 문자에 " 가 포함되어 있을경우 개행이 정상적으로 되지 않는 현상 수정.
엑셀상에서 아래와같이 두행으로 표현되어있을때 붙여넣기 할경우
|a"|
|b"|
그리드상에
|a" b"| 형태로 붙여넣기가 되는 문제 수정.
-
ColumnGroup_layout 이 vertical로 되어있을때 로우높이를 변경하는
api가( setRowHeight,
setRowHeight) 동작하지 않도록 구현되어 있었으나 vertical로 정렬되어있는 셀들의 높이를 고려하여 로우높이가 조절되게 개선됨.
-
CheckBar 선택 기능이 shift키를 이용하여 시작/끝영역을 선택/해제할수 있게 개선됨.(기본기능)
-
ImageCellRenderer에서 이미지가 뿌옇게 나오는 현상을 개선함.
-
Internet explorer 브라우저에서 셀편집완료시 렌더러에 편집전데이터가 잠시 보이는 현상 개선.
오류
-
treeView에서 fitRowHeight 실행시
트리의 depth가 들여쓰기 된 부분만큼 너비가 계산되지 않아 로우 높이가 정상적으로 되지 않는 현상 수정.
-
TextWrap을 normal로 사용시 빈공백의 개행이 있을경우
줄 나눔이 되지 않는 현상 수정.
-
DataColumn의 groupLevel 이 2 이상일때
셀병합을 할 경우 셀이깨지고 정상적으로 그려지지 않는 현상 수정.
-
그리드의 사이즈가 고정적이지 않을때 Internet explorer 브라우저에서 라사이즈시 그리드를 안보이게 줄였을경우 오류가 발생하는 현상 수정.
Canvas의 drawImage함수에 전달되는 파라미터가 마이너이스인 경우에 Internet explorer 브라우저에서 오류가 발생되는 부분이 수정됨.
-
컬럼리사이즈 오류.
fixedColumnCount을 지정하고
GridFitStyle을 fill로 지정한 상태에서 리사이즈시
다른컬럼의 너비가 변경되는 현상을 수정함.
-
rowFocusMask 사용시 가로스크롤 이동으로 선택된 셀이 보이지 않을경우 사라지는 현상 수정
-
MaskCellEditor에서 한글 입력시 커서가 뒤로 가는 현상 수정.
-
erasable 사용중 편집중에 delete키를 누르면 오류나는 현상 수정.
내부적으로 존재하지 않는 옵션인 erasableWhenEdit 을 호출해서 오류가 발생함.
erasableWhenEdit이 추가되고 기능이 구현되었다.
-
DateCellEditor의 minDate,maxDate 지정시 범위에 벗어난 값을 달력에서 선택할수있게 오동작 하고있는 부분이 수정됨.
-
excel export 시 오류가 발생하는 현상 수정.
createFooterCallback를 사용하고 첫번째 컬럼의 style에
textAlignment가 center인 경우에만 발생함.
-
excel export 시 오류가 발생하는 현상 수정.
ColumnGroup을 사용시 ColumnSummary 의 spanNext, spanPrev 속성으로
ColumnSummary영역을 머지 시켰을 경우 오류나는 현상이 수정됨.
-
selectStyle 이 'single_row','rows','columns','single_column'
일경우 마지막 로우의 마지막셀에서 편집완료가 되지 않는 현상 수정.
-
Mac os의 safari 브라우저에서 DateCellEditor,NumberCellEditor 의 셀값이 복사가 안되는 현상 수정.
-
checked 상태의 행들의 index를 배열로 리턴하는 getCheckedRowIndices를 셀편집중인 상태에서 호출시
같은 index가 두개 나오는 현상 수정.