SBGrid 속성 및 기능에 대해
자주 문의하시는 질문과 답변을 모았습니다.
그리드를 페이지에 적용할 경우 그리드가 틀어집니다.
SBGrid2.5는 HTML5를 지원하고 있어 <!DOCTYPE html> 선언이 필요합니다.
SBGrid2.5는 Internet Explorer의 호환성 보기를 지원하고 있나요?
호환성 보기는 비표준 웹브라우저의 화면을 보기 위한 기능으로 표준을 준수하고 있는 SBGrid2.5에서는 지원하고 있지 않습니다.
사용자 정의 CSS를 적용할 수 있나요?
제공된 라이브러리에 포함된 SBGrid_Default.css 의 변경으로 사용자가 정의한 스타일을 적용할 수 있습니다.
1) 영역별 CSS 클래스
-sbgrid_GFA_st : 그리드 전체 영역
-sbgrid_fixed_table_st : 헤더 영역
-sbgrid_data_table_st : 데이터 영역
-sbgrid_cell_st : 셀 스타일
-sbgrid_fixed_cell_st : 헤더 영역의 셀 스타일
-sbgrid_data_cell_st : 데이터 영역의 셀 스타일
2) 기능별 CSS 클래스
-sbgrid_RHT_st : rowheader 영역
-sbgrid_FT_st : 틀고정 열(FrozenCols)의 데이터 영역
-sbgrid_FFHT_st : 틀고정 열(FrozenCols)의 헤더 영역
-sbgrid_DT_st : 틀고정 열(FrozenCols) 영역을 제외한 데이터 영역
-sbgrid_FHT_st : 틀고정 열(FrozenCols) 영역을 제외한 헤더 영역
3) 동적 CSS 클래스
-sbgrid_focus_st : 포커스 영역
-sbgrid_data_cell_hover_st : 그리드 셀 단위 선택 설정(SBGridProperties.selectmode = 'free';) 시 마우스 hover 영역(데이터 영역)
-sbgrid_data_row_hover_st : 그리드 행 단위 선택 설정 시 마우스 hover 영역(데이터 영역)
로딩 이미지를 사용자 정의 이미지로 변경하거나 화면에 보이지 않도록 설정할 수 있나요?
제공된 라이브러리에 포함된 SBGrid_Default.css의 sbgrid_lock_ui_st 클래스 변경으로 적용할 수 있습니다.
→ background:#000000 url(../img/grid/wait.png) no-repeat center center; 사용자 이미지 대체 또는 삭제
데이터 영역에 특정 이미지를 지정할 수 있나요?
제공된 라이브러리에 포함된 SBGrid_Default.css의 sbgrid_GFA_st 클래스 변경으로 적용할 수 있습니다.
→ background-image:url(../img/logo.png) !important; 특정 이미지 대체 또는 삭제
그리드에 데이터 입력 시 Validation 설정은 어떻게 하나요?
사용자 정의(userattr) 속성을 사용하여 Validation을 체크할 수 있습니다.
→ 사용자 정의(userattr) 속성으로 바로가기
피봇 기능이 있나요?
별도의 피봇 기능은 지원하고 있지 않습니다.
그리드 내의 데이터를 줄바꿈 할 수 있나요?
1) 헤더(caption) 영역
헤더명에서 줄바꿈 하려는 위치에 ' \n '을 추가합니다.
단, 줄바꿈을 확인하기 위해서는 fixedrowheight 속성을 통해 헤더의 높이를 설정해야 합니다.
2) 데이터 영역
textarea 타입의 textareascroll 속성을 사용하여 줄바꿈 할 수 있습니다.
단, 줄바꿈을 확인하기 위해서는 rowheight 속성을 통해 데이터 행의 높이를 설정해야 합니다.
소수점의 길이를 제한하는 방법을 알고 싶습니다.
다음과 같이 format : {type:'number', rule:'#,##0.##'} 설정 시 소수점 이하 2자리까지 표시됩니다.
→ format 설정으로 바로가기
selectRow() 메소드와 setRow() 메소드의 차이를 알고 싶습니다.
selectRow()는 포커스(focus)만 이동하기 때문에 현재 선택된 행 Index를 확인할 수 없지만,
setRow()는 포커스(focus) 이동과 동시에 내부적으로 행 Index를 지정하기 때문에 getRow() 메소드를 통해 행 Index를 가져올 수 있습니다.
특정 열을 제외하고 병합할 수 있나요?
1) mergecells = "byrestriccol"; 속성을 적용합니다.
2) datamergefalseskip = true; 속성을 적용합니다.
3) 병합에서 제외할 열에 merge : false 속성을 적용합니다.
조건 데이터에 따라 특정 행 또는 셀에 스타일을 지정할 수 있나요?
네, 지정할 수 있습니다. 방법은 아래의 예시를 참고해주세요.
1) setRowStyle 메소드로 특정 행 스타일 지정하기
→ setRowStyle 가이드로 바로가기
2) setRowStyleEx 메소드로 특정 행 스타일 여러 개 지정하기
→ setRowStyleEx 가이드로 바로가기
3) setCellStyle 메소드로 특정 셀 스타일 지정하기
→ setCellStyle 가이드로 바로가기
ex)
function searchAfterStyle(){
// 특정 데이터가 있는 row의 인덱스를 반환하는 메소드 입니다.
var searchData = datagrid.searchRows(0, '유재석');
for(var i=0; i<searchData.length; i++){
// 마지막 파라미터의 경우 false는 refresh 여부입니다. 데이터가 많은 경우 속도 향상을 위한 방법 입니다.
// setRowStyleEx 메소드로 특정 행 스타일 여러 개 지정하기
datagrid.setRowStyleEx(searchData[i], 'background:#e3dde3;font-weight:bold', 'all', false);
}
// 마지막에 refresh 하여 색상을 적용합니다.
datagrid.refresh({focus:false});
}
엑셀 다운로드시 'NullPointerException' 이 발생합니다.
tomcat 서버의 경우 기본적으로 받을 수 있는 데이터의 size와 paramter 개수가 설정되어 있습니다.
따라서 대용량 엑셀 데이터의 경우 NullPointerException이 발생할 수 있습니다.
대용량 엑셀 데이터를 다운로드하기 위해서는 tomcat 설정 파일 중 server.xml에서 아래의 설정 부분을 추가 또는 변경하셔야 합니다.
- tomcat 7.0 기준
<Connector connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
URIEncoding="UTF-8"
maxPostSize="0" maxParameterCount="-1"/> 또는
<Connector connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
URIEncoding="UTF-8"
maxPostSize="-1" maxParameterCount="-1"/>
- tomcat 8.0 기준
<Connector connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
URIEncoding="UTF-8"
maxPostSize="-1" maxParameterCount="-1"/>
엑셀 다운로드 시 오류가 발생합니다.
엑셀 다운로드 시 오류가 발생하는 경우는 다음과 같습니다.
1) SBExcel.jar의 컴파일 버전과 사용하고 계신 컴파일러 버전이 다를 경우
사용하고 계신 컴파일러 버전에서 실행되는 SBExcel.jar를 요청하시면 됩니다.
2) 종속 라이브러리 버전이 맞지 않거나 충돌이 날 경우
POI 종속 라이브러리의 확인이 필요합니다. 다음의 라이브러리는 JDK 1.7 이상에서 사용되는 종속 라이브러리입니다.
- cos.jar
- json-simple-1.1.1.jar
- poi-3.11.jar
- poi-ooxml-3.11.jar
- poi-ooxml-schemas-3.11.jar
- xercesImpl.jar
- xmlbeans-2.6.0.jar
3) 로컬에서는 정상적으로 다운로드를 받을 수 있지만 운영 서버(운영 환경과 같은 개발 서버)에서는 받을 수 없는 경우
다운로드 시 임시로 서버에 파일을 생성하는데 유닉스와 같은 서버는 권한 문제로 파일을 생성할 수 없는 경우가 발생합니다.
해당 사항의 경우는 서버 관리자에게 문의가 필요합니다.