Grid

소개

컴포넌트 설명

요약

테이블형 자료를 그리드로 표시

기능 및 특징

  • 크게 Body와 Header로 구분

  • 다양한 데이터 형식 지원

  • 자유로운 그리드 편집

  • 페이징, 정렬, 필터링, 그룹핑 지원

  • 각 칼럼 별로 데이터 형식 지정

  • 순차적으로 데이터를 표시하여 대량의 데이터 표시에 적합 & 데이터 출력 속도 개선 (무한 스크롤링)

  • Total, Subtotal, Footer 지원

  • 클립보드를 지원하여 데이터 바인딩이 용이 (드래그-앤-드롭으로 바로 GridView와 바인딩 가능)

주요 용도

  • 복잡한 테이블 구성

  • 대량의 데이터를 처리하는 테이블 구성

  • 대용량 파일 업로드/다운로드 (Excel, CVS, 한셀/넥셀)

YouTube 동영상

  • GridView 동영상 모음

    • 전체

      • https://youtube.com/playlist?list=PL7a9HhkvOVb3rbVfPAsS3Pq_rvxmdM1Ru

    • 일반

      • https://youtube.com/playlist?list=PL7a9HhkvOVb2_7lKQf54XwX4X3f4bqOAj

    • 드래깅

      • https://youtube.com/playlist?list=PL7a9HhkvOVb0-ysABiKKfhnxLU6ZIQTMR

    • 이벤트

      • https://youtube.com/playlist?list=PL7a9HhkvOVb1VEHd2qwiF0oOR7lO5-J1P

    • Excel

      • https://youtube.com/playlist?list=PL7a9HhkvOVb1BDBKKQElEcTBfyZ9VaKHh

    • 필터링

      • https://youtube.com/playlist?list=PL7a9HhkvOVb2-tNuJab1i_nQHNE-pM4p3

    • gridView.footer

      • https://youtube.com/playlist?list=PL7a9HhkvOVb2THHGg30Kn-U5AUbZwq1gk

    • gridView.column

      • https://youtube.com/playlist?list=PL7a9HhkvOVb3_4QpWiErS_eYjxisFzbYc

    • 그룹핑

      • https://youtube.com/playlist?list=PL7a9HhkvOVb1QjeJxZV8aqb8Bd1tHH4W-

    • inputType

      • https://youtube.com/playlist?list=PL7a9HhkvOVb0BNrcR6LP1WUuYSunz6hid

    • 병합

      • https://www.youtube.com/playlist?list=PL7a9HhkvOVb377prDaJ6x5Ftc83JGSmeW

    • 모바일

      • https://youtube.com/playlist?list=PL7a9HhkvOVb3cPXzBklG-tj2ZFUMcvsIb

    • 정렬

      • https://youtube.com/playlist?list=PL7a9HhkvOVb1cQbkNF0aLMRjKTw0vFmT2

    • 스타일

      • https://www.youtube.com/playlist?list=PL7a9HhkvOVb24GxSq-ydV6_ByyU7ROv22

    • gridView.subTotal

      • https://youtube.com/playlist?list=PL7a9HhkvOVb37YKuc4nJVEzSyHfY-3yQC

  • GridView 쇼츠 동영상 모음

    • 전체

      • https://youtube.com/playlist?list=PL7a9HhkvOVb213UWbVH8U1V2api8n2JjU

    • 일반

      • https://youtube.com/playlist?list=PL7a9HhkvOVb2Xq_lSOFr84D5Dx9BdoBY1

    • Excel

      • https://www.youtube.com/playlist?list=PL7a9HhkvOVb1ZfQk1xBUXrMWtNCwymbhP

    • 필터링

      • https://youtube.com/playlist?list=PL7a9HhkvOVb0h95oDiKX2t1yWCckWDmjf

    • 그룹핑

      • https://youtube.com/playlist?list=PL7a9HhkvOVb2y2vhlov918FcHXvrxH3kk

    • inputType

      • https://youtube.com/playlist?list=PL7a9HhkvOVb2zeARHkcB8A_qH7o35Tbny

    • 병합

      • https://www.youtube.com/playlist?list=PL7a9HhkvOVb2Roe4saQO-aRHfompiY2Su

    • 정렬

      • https://youtube.com/playlist?list=PL7a9HhkvOVb2oH1otZwCuMToel8P4tLSy

    • 스타일

      • https://www.youtube.com/playlist?list=PL7a9HhkvOVb3EHaedVgt4M3M9oNzHchbk

아래의 주요 속성을 사용하여 GridView의 여러 가지 유용한 기능을 편리하게 사용할 수 있습니다.

주요 API

속성

기능 및 설명

autoFit

화면 전체 폭에 그리드를 출력.

  • lastColum: 마지막 열만 확장

  • allColumn: 모든 열의 폭을 균등하게 확장

visibleRowNum

페이지 당 표시할 행을 지정.

  • all: 모든 행을 표시. (단, 최적의 성능을 위해 50행 이하를 권장.)

defaultValue

새로운 행이 추가될 때 표시할 기본 값을 지정.

hidden

열 표시/숨김을 지정.

textAlign

셀에 표시할 텍스트의 정렬 방향을 지정합니다.

readOnly

각 셀 및 그리드 전체에 대해 데이터의 수정을 허용하거나 금지합니다.

sortable

해당 열의 정렬 가능 여부를 지정합니다.

resize

열의 너비를 사용자가 조정할 수 있도록 허가합니다.

hideHeader

헤더를 표시하거나 숨깁니다.

fixedColumn

틀고정을 위해 고정할 열의 개수를 지정합니다.

focusMode

focusMove

keyMoveEditMode

editModeEvent

포커스 이동, 키 이동, 편집 모드 등을 설정할 수 있습니다.

tooltipDisplay

각 셀의 표시되지 못한 데이터를 사용자의 마우스 오버시 풍선 도움말 형태로 보여줍니다.

colMerge

upperColumn

colMerge="true"는 하나의 열에 있는 공통된 값의 행을 하나의 셀로 병합하도록 설정합니다. upperColumn은 하나의 셀 병합 열을 기준으로 다른 열을 셀 병합하도록 기준을 설정합니다.

데이터 바인딩

GridView에 데이터를 표시하기 위해서는 DataList와의 바인딩이 필요합니다. DataList를 생성한 후, GridView와 바인딩하십시오. 좀 더 자세한 정보는 DataCollectionSubmission 부분을 참고하십시오.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/load_add_remove_delete_initilize_view_GridView/)

YouTube 동영상 (https://youtu.be/2JVHeNzkFZ8)

구조

GridView 구조

아래와 같이 GridView 최외곽을 선택하면 GridView 전체에 대한 속성을 지정할 수 있습니다.

Body

gridView.column에서 지정한 다양한 inputType을 통해 Body를 표현할 수 있습니다.

GridView의 경우 dataCollection 객체에서 dataType 속성을 설정할 수 있습니다.

Header

Header 셀도 Body와 마찬가지로 inputType 지정을 통해 다양한 형식을 지정할 수 있습니다. 단, Body가 더 다양한 종류를 지원합니다.

Header 셀을 선택한 후 inputType을 지정하십시오. 헤더에서 사용할 수 있는 inputTypedataType의 종류는 다음과 같습니다. (기본 값은 text입니다.)

inputType

inputType

설명

미리보기

text

일반 텍스트로 표현

text

(& dataType = "own")

셀 값(value)은 참조하려는 body 열의 id를 값으로 갖습니다.

텍스트 입력이 가능.

checkbox

셀 값(value)은 참조하려는 body 열의 id를 값으로 갖습니다.

선택/해제 가능.

select

셀 값(value)은 참조하려는 body 열의 id를 값으로 갖습니다.

단일 선택용.

inputType 별 속성

Body 셀의 속성과 동일하나, Header 셀에 사용 가능한 속성은 제한적입니다. 아래 표를 참고하십시오.

InputType & dataType

property

InputType & dataType

text

text & own

checkbox

select

allOption

×

×

×

chooseOption

×

×

×

chooseOptionLabel

×

×

×

colspan

dataType

×

×

hidden

id

inputType

localeRef

×

×

rowspan

sortable

textAlign

useLocale

×

×

×

value

width

onChangeFunction

×

아래의 경우 sortable 속성과 필터링 기능을 함께 사용하지 마십시오. (단, multiSort() API와 필터링 기능은 함께 사용할 수 있습니다.)


Header 병합

동일한 열의 연속된 행을 <Ctrl>을 누른 채 선택하여 병합(rowSpan)할 수 있습니다. 같은 행의 연속된 열도 병합(colSpan)할 수 있습니다.

Header 텍스트 정렬

textAlign 속성으로 텍스트를 좌, 우, 중앙으로 정렬할 수 있습니다. 기본 값은 중앙(center)입니다.

Header 텍스트 설정

Header 셀에 출력할 텍스트는 아래 방법으로 설정가능합니다.

subTotal

subTotal 추가

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(GridView/subTotal/subtotal_GridView.xml)

YouTube 동영상 (https://youtu.be/WsJdYLy8lcU)

GridView에 subTotal을 추가하여, 특정 컬럼에 속한 일부 데이터의 통계값을 계산할 수 있습니다.

  1. GridView 우클릭 후, Add SubTotal 메뉴를 선택합니다.

subTotal 추가

  1. Outline 뷰의 Design 탭에서 추가한 subTotal을 선택한 후, targetColumnID 속성 값으로 subTotal 통계값의 기준이 될 컬럼을 지정합니다.

subTotaltargetColumnID 지정

  1. subTotal을 표시할 컬럼의 inputType"expression"으로 지정합니다.

  2. subTotal을 표시할 컬럼의 expression 속성 값을 정의합니다. subTotal 컬럼이 지원하는 통계 계산식을 사용하십시오.

subTotal을 표시할 컬럼의 inputTypeexpression 속성 지정

  1. 다음은 city 컬럼("col1")을 기준으로 sales 컬럼("col4")의 소계(sum("col4"))를 계산하여 subTotal에 표시한 모습입니다.

subTotal 추가 전

subTotal 추가 후

subTotal 컬럼의 expression 속성에 사용할 수 있는 계산식은 다음과 같습니다.

subTotal 지원 계산식

No.

함수

설명

1

SUM

총합.

2

AVG

평균.

3

MIN

최소값.

4

MAX

최대값.

5

COUNT

해당 컬럼의 데이터 건 수.

  • subTotal 컬럼에서의 사용 예: COUNT("colID")

  • footer 컬럼에서의 사용 예: COUNT()

주의


GridView의 subTotaltotal 컬럼이 지원하는 사용하는 계산식과 일반 컬럼이 지원하는 계산식은 서로 차이가 있습니다. (inputType="expression" 참고.)

subtotal 표시/숨기기

setSubtotalVisible(true); 함수를 이용하여 subTotal을 표시할 수 있습니다.

setSubtotalVisible(false); 함수를 이용하여 subTotal을 숨길 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/subTotal/setSubtotalVisible_GridView.xml)

YouTube 동영상 (https://youtu.be/U-IW9JUdi5M)

subtotal 값을 기준으로 서로 다른 CSS 스타일 적용

subtotalStyleFormatter 속성으로 subtotal 데이터에 적용할 CSS 클래스를 판단하는 함수를 지정할 수 있습니다. 즉, 해당 함를 통해 subtotal 데이터에 따라 서로 다른 CSS를 적용할 수 있습니다.

subtotalStyleFormatter="scwin.styleFormatter"인 경우, 아래와 같이 scwin.styleFormatter() 함수를 정의하여, subtotal 데이터에 따라 서로 다른 CSS 클래스를 적용할 수 있습니다. 아래 예시의 경우, subtotal 데이터가 5000보다 크면 w2subtotalbig 클래스가 추가되고, subtotal 데이터가 500이하이면 w2subtotalsmall 클래스가 적용됩니다.

$r_title(subtotalStyleFormatter 속성값으로 지정한 함수 정의 예시)
scwin.styleFormatter = function(value, formattedValue) {
  if (value > 5000) {
    return "w2subtotalbig";
  } else {
    return "w2subtotalsmall"
  }
}
$r_title(스타일 정의 예시)
.w2subtotalbig {
  color: red;
}

.w2subtotalsmall {
  color: blue;
}

subtotalStyleFormatter=""

subtotalStyleFormatter="scwin.styleFormatter"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/subTotal/subtotalStyleFormatter_GridView.xml)

YouTube 동영상 (https://youtu.be/vGa9ayKAHtc)

subtotal 컬럼을 기준으로 서로 다른 CSS 스타일 적용

subtotalStyleFormatter 속성 값으로 지정한 함수는 subtotal 컬럼의 ID(subtotalColumnId)를 세번째 인자로 받습니다. 이 세번째 인자를 사용하여 각 subtotal 컬럼마다 서로 다른 CSS 스타일을 적용할 수 있습니다.

$r_title(함수 구현 예)
scwin.styleFormatter = function(value, formattedValue, subtotalColumnId) {
  if (subtotalColumnId == "column16" || subtotalColumnId == "column18) {
    return "w2subtotalformatted";
  }
  else {
    return "w2subtotalnotformatted";
  }
};

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/subTotal/subtotalStyleFormatter_subtotalColumnId_GridView.xml)

YouTube 동영상 (https://youtu.be/3xh5OE5Mar4)

footer

설명

관련 속성

  • footerCaption: 푸터 내용. 푸터(footerCaption)가 존재할 경우, 타이틀(CaptionTitle)에 우선하여 푸터 표시.

  • footerCaptionAuto: captionAuto 설정에 상관 없이 푸터(<footerCaption>)를 자동 표시.

  • footerCaptionTitle: 푸터를 자동 생성할 때 참고할 텍스트.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/footer/footer_GridView.xml)

YouTube 동영상 (https://youtu.be/Cs-DeBICs6s)

footer 추가

GridView에 footer를 추가하여, 특정 컬럼 데이터의 통계값을 계산할 수 있습니다.

  1. GridView 우클릭 후, Insert Footer 메뉴를 선택합니다.

footer 추가

  1. footer를 표시할 컬럼의 inputType"expression"으로 지정합니다.

  2. footer를 표시할 컬럼의 expression 속성 값을 정의합니다. footer 컬럼이 지원하는 통계 계산식을 사용하십시오.

  1. 다음은 sales 컬럼("col4")의 합계(sum("col4"))를 footer에 표시한 모습입니다.

footer 추가 후

footer 지원 계산식

No.

함수

설명

1

SUM

총합.

2

AVG

평균.

3

MIN

최소값.

4

MAX

최대값.

5

COUNT

해당 컬럼의 데이터 건 수.

  • subTotal 컬럼에서의 사용 예: COUNT("colID")

  • footer 컬럼에서의 사용 예: COUNT()

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(GridView/footer/inputType_expression_footer_gridView_column/)

YouTube 동영상 (https://youtu.be/tqulgI92fOU)

footer 타이틀

푸터 생성 규칙

조건

생성 푸터

captionTitle="타이틀"

footerCaption="푸터"

footerCaptionAuto="true"

"푸터"

captionTitle="타이틀"

footerCaption=""

footerCaptionAuto="true"

"타이틀의 합계를 나타낸 표"

푸터 요약(footerSummary) 생성

footerSummaryAuto 속성을 사용하면 아래와 같이 푸터 요약을 자동 생성할 수 있습니다.

summary 생성 규칙

조건

summary

footerSummaryAuto="false"

생성되는 summary 없음.

footerSummaryAuto="true"

captionTitle="타이틀"

footerSummary=""

summary="타이틀의 합계를 나타낸 표"

footerSummaryAuto="true"

captionTitle=""

footerSummary="푸터 요약"

summary="푸터 요약"

부동 소수점 오류 자동 보정 (SUM 및 AVG 연산)

footer 컬럼의 inputType"expression"으로 지정한 후 expression=SUM("column") 혹은 expression=AVG("column") 설정을 추가하여 해당 컬럼의 합계 혹은 평균을 계산할 수 있습니다.

합계나 평균을 구하는 컬럼의 데이터가 소숫점 숫자일 경우, JavaScript의 부동 소수점 오류를 처리하기 위해 아래와 같은 설정이 필요합니다.

  1. 바디의 컬럼 (gridView.column) – dataType="bigDecimal"

  2. 푸터의 컬럼 (gridView.column) – dataType="bigDecimal"

  3. config.xml 파일에 설정 추가 (하단 참조)

$r_title(config.xml (부동 소수점 오류 처리를 위한 설정))
<engine>
        <module src="/websquare/externalJS/big/big.min.js"/>
</engine>

단, 위의 처리는 모두 2020년 11월 전에 릴리즈된 엔진에 해당합니다. 2020년 11월 이후 출시된 에진의 경우 GridView의 SUM 및 AVG 연산에 대해 JavaScript의 부동 소수점 오류를 자동 처리합니다

inputType="expression" expression='SUM'("columnID")

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/footer/inputType_expression_SUM_gridView_column/)

YouTube 동영상 (https://youtu.be/L1GGULl6cFA)

inputType="expression" expression='AVG'("columnID")

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/footer/inputType_expression_AVG_gridView_column.xml)

YouTube 동영상 (https://youtu.be/ojd55iLjAOg)

조건부 합계 표시

footer 컬럼의 inputType"expression"으로 지정한 후 한 개 혹은 여러 조건을 설정하여 해당 조건을 만족하는 합계를 구할 수 있습니다.

$r_title("sumif" 사용 예 – 조건이 한 개인 경우)
// col3의 값이 Freezer인 경우, col4 컬럼의 합계.

expression="sumif('col4', 'Freezer', 'col3’)"
$r_title("sumif" 사용 예 – 조건이 여러 개인 경우)
// col3의 값은 TV이고 col1의 값은 Asia인 경우 col4 컬럼의 합계.

expression="sumifs('col4', 'TV', 'col3','Asia', 'col1')"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/footer/inputType_expression_sumif_sumifs_gridView_column.xml)

YouTube 동영상 (https://youtu.be/mgx5RrhrgsU)

footer 값 확인

getFooterData() 함수를 사용하면, footer 컬럼의 ID 혹은 인덱스를 지정하여 해당 footer 값을 확인할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/footer/getFooterData_GridView.xml)

YouTube 동영상 (https://youtu.be/u1TYaMl_enY)

inputType

inputType 설정

각 컬럼의 inputType을 서로 다르게 지정할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inpuType/inputType_checkbox_select_gridView_column.xml)

YouTube 동영상 (https://youtu.be/kiyeMLD5PNs)

inputType 별 속성

inputType에 따라 Body 칼럼에 지정할 수 있는 속성이 달라집니다. 좀 더 자세한 정보는 API 가이드에서 확인하십시오.

inpuType 동적 변경

inputType="custom"

inputType 동적 변경 (typeGetter)

기능 설명

설명

  • 각 행 별로 서로 다른 inputType을 지정

사용 방법

  1. <Body> 부분에 inputType="custom"으로 지정.

  2. typeGetter 함수를 정의합니다. (반드시 lazy="false" 설정을 사용하십시오!)

lazy="false"를 설정하는 이유


typeGetter로 지정한 함수는 GridView가 렌더링될 때 로딩해야 해당 함수에 의해 GridView의 inputType을 동적으로 변경할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inputType/inputType_custom_typeGetter_gridView_column.xml)

YouTube 동영상 (https://youtu.be/NSicuP53ywk)

$r_title(typeGetter="getType"인 경우 해당 함수 정의 예시)
getType = function(info) {
  var rowIndex = info.rowIndex;
  var colIndex = info.colIndex;
  var returnInfo;

  if (dataList1.getCellData(rowIndex, "Age") < 40 && dataList1.getCellData(rowIndex, "Age") > 29) {
    returnInfo = {
      id: "dynamic_select_" + rowIndex + "_" + colIndex,
      inputType: "button",
      options: {
        viewType: "icon"
      }
    };
  } else {
    returnInfo = {
      id: "dynamic_text_" + rowIndex + "_" + colIndex,
      inputType: "text",
      options: {}
    };
  }

  if (returnInfo) {
    console.log("[typeGetter] (" + rowIndex + ", " + colIndex + ") : " + returnInfo.inputType);
  }

  return returnInfo;
};

typeGetter로 지정할 함수의 인자와 반환값은 아래와 같습니다.

typeGetter 함수

인자

반환 값

  • 아래의 정보를 엔진이 전달

    • rowIndex

    • colndex

    • colID

    • value

  • Object 형태로 반환

    • id: ID (이미 존재할 경우 재활용)

    • inputType: 동적으로 지정할 inputType

    • options: GridView가 지원하는 각 inputType의 속성

    • itemSet: 바인딩된 dataCollection

$r_title(typeGetter의 반환 값 예제)
returnInfo = {
    id: "dynamic_select_" + cnt,
    inputType: "select",
    options: {
        viewType: "icon"
    },
    itemSet: {
        nodeset: "data:dataList2",
        label: "label",
        value: "value"
    },
    value: "select"
}

inputType 동적 변경 (setCellInputTypeCustom & setCellInputType())

GridView의 컬럼이 inputType="custom"인 경우, setCellInputTypeCustom="true" 설정과 setCellInputType() 함수를 사용하여 해당 컬럼에 속한 특정 셀의 inputType을 동적으로 변경할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inputType/setCellInputType_setCellInputTypeCustom_GridView/)

YouTube 동영상 (https://youtu.be/GaGi7q3_Lps)

inputType 종류

열의 inputType의 종류는 다음과 같습니다. 기본 값은 text입니다.

종류

설명

미리보기

text

일반 텍스트

(InputBox와 비슷.)

link

밑줄 쳐진 강조된 텍스트

checkbox

true/false에 따라 다중 행 선택

button

버튼

image

이미지

radio

true/false 단일 행 선택

select

SelectBox처럼 셀 값과 같은 value의 label을 선택

calendar

달력 아이콘 표시

달력 아이콘에서 날짜 형태 선택 (기본 형식: yyyy-MM-dd)

(InputCalendar와 비슷.)

expression

함수를 사용하여 텍스트를 표현

다른 컬럼을 참조하여 새로운 데이터를 생성하는 사용자 정의 함수 등록 가능


예시: display('columnID'), rowIndex(), userExp(rowIndex(), display('columnID')


textarea

여러 줄의 텍스트


drilldown

+/- 버튼이 있는 트리 형태

textImage

일반 텍스트로 표현하며, 아이콘을 보여준다.

이벤트처리함수(imageClickFunction)를 통해 아이콘 클릭에 따른 동작 설정이 가능.

checkcombobox

CheckBox와 SelectBox가 결합된 형태.

한 개 이상의 항목 선택 가능.

autoComplete

텍스트 자동 완성

secret

텍스트를 감추어 표시

inputType="autoComplete"

소개

inputType="autoComplete"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inputType/inputType_autoComplete_gridView_column.xml)

YouTube 동영상 (https://youtu.be/IEJiQnLUlxQ)

directOpen

viewType="icon"viewTypeIconImage="true" 설정을 사용할 경우, GridView의 autoComplete 상자에 화살표 이미지가 표시됩니다. 이 경우, directOpen="true" 설정을 추가하면 화살표 이미지 클릭만으로 아이템 목록을 바로 펼칠 수 있습니다.

directOpen="true"

directOpen="false"인 경우, 화살표 이미지를 클릭하면 해당 셀만 선택합니다. 화살표 이미지를 더블 클릭해야 아이템 목록이 펼쳐집니다.

directOpen="false"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inputType/inputType_autoComplete_directOpen_gridView_column.xml)

YouTube 동영상 (https://youtu.be/hGZhEpgzH0s)

displayModedelimiter 동적 설정

setDisplayMode()setDelimiter() 함수를 사용하면 그리드뷰 컬럼(gridView.column)의 displayModedelimiter 속성을 동적으로 변경할 수 있습니다. 단, 아래의 inputType 컬럼에 한해 지원합니다.

displayMode
$r_title(사용 예)
// gridView1의 컬럼 중
// index가 2인 컬럼의 displayMode 속성값을 "value delim label"로 지정. 

gridView1.setDisplayMode(2, "label delim value");

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inputType/setDisplayMode_GridView.xml)

YouTube 동영상 (https://youtu.be/zYHD84kaN4Y)

delimiter
$r_title(사용 예)
// gridView1의 컬럼 중
// index="2" 컬럼에 delimiter=" || "  설정. 

gridView1.setDelimiter(2, " || ");

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inputType/setDelimiter_GridView.xml)

YouTube 동영상 (https://youtu.be/jcE6477rwcc)

inputType="calendar"

날짜 입력 순서 및 표시 형식 지정

dataType="date" inputType="calendar" 컬럼의 경우, setColumnIoFormat(options); 함수를 이용하여 (1) 날짜 입력 형식 (2) 입력란의 날짜 출력 형식 (3) 달력의 날짜 출력 형식을 지정할 수 있습니다.

$r_title(setColumnIoFormat)
gridView1.setColumnIoFormat(
    {
      colIndex: "col2" , 
      ioFormat:"ddMMyyyy", 
      dateMask:"dd-MM-yyyy", 
      useMonthYearFormat:true, 
      calendarDisplayFormat:"dd-MM-yyyy"
    }
);

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inputType/inputType_calendar_setColumnIoFormat_gridView_column.xml)

YouTube 동영상 (https://youtu.be/T-qhSZ7K3Tk)

연도 및 월 선택 방식 설정

inputType="calendar" 컬럼의 경우, pickerType 및 fixPickerStatus 속성을 사용하여 연도와 월 선택 방식을 설정할 수 있습니다.

pickerType="selectbox"

pickerType="dynamic"

fixPickerStatus="default"

fixPickerStatus="month"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inputType/inputType_calendar_pickerType_fixPickerStatus_gridView_column.xml)

YouTube 동영상 (https://youtu.be/wKSARWUQoI4)

inputType="checkbox"

checkboxLabelColumn

inputType="checkbox" 컬럼의 경우, 다른 칼럼의 값을 조합하여 CheckBox 라벨 값으로 사용할 수 있습니다. checkboxLabelColumn 속성으로 조합할 GridView 바디 컬럼의 ID를 지정하십시오.

checkboxLabelColumn=""

checkboxLabelColumn="Status,Hobby"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/checkboxLabelColumn_radioLabelColumn_gridView_column/)

YouTube 동영상 (https://youtu.be/3AzVyG6XZ6k)

checkAll()

checkAll() 함수를 사용하면 inputType="checkbox"의 컬럼의 체크박스를 한번에 선택하거나 선택 해제할 수 있습니다.

$r_title(checkAll() 사용 예시)
// id="chk" 컬럼의 체크박스를 모두 선택.
gridView1.checkAll("chk", true);

// id="chk" 컬럼의 체크박스를 모두 선택 해제.
gridView1.checkAll("chk", false);

체크박스가 모두 선택된 모습

체크박스가 모두 선택 해제된 모습

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inputType/checkAll_GridView.xml)

YouTube 동영상 (https://youtu.be/b1UcSFvlJMY)

checkAllType

헤더가 inputType="checkbox"의 경우, 헤더의 체크박스를 통해 전체 셀을 선택할 때 disabled이거나 readOnly 상태의 셀을 셀 상태 판단에 포함할지 여부를 결정할 수 있습니다.

아래의 예제에서 두 행은 선택 상태가 아니고 이 두 행의 상태를 셀 상태 판단에 포함("include")됩니다. 그 결과, 두 셀을 포함하면, 모든 셀이 선택된 것으로 볼 수 없기 때문에 부분 선택 기호가 표시되었습니다.

checkAllType="include"

아래의 예제에서 두 행은 선택 상태가 아니고 이 두 행의 상태는 셀 상태 판단에서 제외("exclude")됩니다. 그 결과 두 셀을 제외한 모든 셀이 선택된 것으로 볼 수 있기 때문에 전체 선택 기호가 표시되었습니다.

checkAllType="exclude"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/checkAllType_GridView.xml)

YouTube 동영상 (https://youtu.be/LzioAerK1g0)

partialCheckNextClick

GridView의 inputType="checkbox" 컬럼에서 일부 행들을 선택한 후, 헤더의 체크박스를 선택할 경우, 전체 행들의 체크박스를 모두 선택할 것인지 혹은 모두 선택 해제할 것인지를 결정할 수 있습니다. 모두 선택할 경우 particalCheckNextClick 속성을 "check"로, 모두 선택 해제할 경우 "uncheck"로 선택해야 합니다.

particalCheckNextClick="uncheck"

particalCheckNextClick="check"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inputType/inputType_checkbox_partialCheckNextClick_gridView_column.xml)

YouTube 동영상 (https://youtu.be/GQtn0YSOPmc)

inputType="checkbox" 혹은 inputType="selet" 열에서 체크한 행의 인덱스 및 데이터 확인

inputType="checkbox" 혹은 inputType="select" 칼럼의 경우 아래 함수를 이용하여 체크한 행의 데이터를 확인할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/getCheckedXXX_Gridview.xml)

YouTube 동영상 (https://youtu.be/3HiSk4YkkT4)

체크한 행 삭제/제거

inputType="checkbox" 컬럼을 추가한 후, 해당 컬럼에서 체크된 행들을 삭제/제거(delete/remove)할 수 있습니다.

관련 API

inputType=“checkbox” (gridView.column)

rowStatusVisible=“true” (gridView)

getCheckedIndex(“colID”); (gridView)

ignoreStatus=“true” (dataList)

deleteRows(Arr); (dataList)

removeRows(Arr); (dataList)

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inputType/inputType_checkbox_gridView_column/)

YouTube 동영상 (https://youtu.be/UF44Y8TMKOs)

Shift 키를 사용하여 여러 셀들을 한번에 체크하여 선택

useShiftKeyCheck="true" 속성 설정을 적용하면 inputType="checkbox" 컬럼의 체크박스를 Shift 키를 사용하여 선택할 경우, 선택된 체크박스 사이의 연속된 셀들을 모두 선택할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inpuType/inputType_checkbox_useShiftKey_useShiftKeyCheck_GridView.xml)

YouTube 동영상 (https://youtu.be/pSTt1MH9vAY)

inputType="checkcombobox"

소개

inputType="checkcombobox"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inputType/inputType_checkcombobox_gridView_column.xml)

YouTube 동영상 (https://youtu.be/4EHQtRAoEV4)

inputType="drilldown"

소개

GridView의 각 행을 메뉴 형식으로 접고 펼수 있는 드릴다운 형태의 컬럼을 설정할 수 있습니다. 단, 메뉴단계에 대한 데이터를 담고 있는 컬럼이 존재해야 하며, 해당 컬럼을 depthColumn 속성으로 지정해야 합니다. 이 외에도 관련된 속성은 아래와 같습니다.

관련 속성

depthColumn

메뉴 단계에 대한 정보를 담고 있는 컬럼.

showDepth

GridView에 표시할 메뉴 단계.

depthType

상위 메뉴 및 하위의 메뉴를 표시하는 방법.

inputType="drilldown"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inputType/inputType_drilldown_gridView_column/)

YouTube 동영상 (https://youtu.be/S87KThzT_SY)

Enter 키로 목록 열기/닫기

drilldownToggle="enter" 설정을 추가하면, inputType="drilldown" 컬럼의 목록을 Enter 키를 통해 열고 닫을 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK에서 보기

(/GridView/inputType/drilldownToggle_GridView.xml)

YouTube 동영상 (https://youtu.be/_w0u0yvnkug)

모바일 환경에서 셀 터치로 목록 열기/닫기

단, 모바일 환경에서는 drilldownToggle="enter" 설정 외에 hammerEnabled="true" 설정을 추가하십시오. 이 경우, inputType=“drilldown” 컬럼에서 목록 기호가 있는 셀을 터치하여 목록을 열고 닫을 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK에서 보기

(/GridView/Mobile/drilldownToggle_hammerEnabled_GridView.xml)

YouTube 동영상 (https://youtu.be/K8ACGkL6xio)

inputType="expression"

일반 컬럼, subTotal, 혹은 footer 컬럼의 경우 inputType"expression"으로 지정한 후, 직접 계산식을 정의하여 사용할 수 있습니다.

일반 컬럼

지원 계산식

No.

함수

설명

1

SUM

총합.

2

AVG

평균.

3

MIN

최소값.

4

MAX

최대값.

5

rowIndex()

행 인덱스.

6

rowStatus()

행 상태.

7

display("colID")

지정한 컬럼의 값.

8

userExp(display("col1"), rowIndex())

사용자 정의함수에서 사용 가능.

9



subTotalfooter 컬럼

지원 계산식

No.

함수

설명

1

SUM

총합.

2

AVG

평균.

3

MIN

최소값.

4

MAX

최대값.

5

COUNT

해당 컬럼의 데이터 건 수.

  • subTotal 컬럼에서의 사용 예: COUNT("colID")

  • footer 컬럼에서의 사용 예: COUNT()

inputType="radio"

radioLabelColumn

inputType="radio" 컬럼의 경우, 다른 칼럼의 값을 조합하여 Radio 라벨 값으로 사용할 수 있습니다. radioLabelColumn 속성으로 조합할 GridView 바디 컬럼의 ID를 지정하십시오.

radioLabelColumn=""

radioLabelColumn="Hobby,Region,Frequency"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/checkboxLabelColumn_radioLabelColumn_gridView_column/)

YouTube 동영상 (https://youtu.be/3AzVyG6XZ6k)

inputType="select"

inputType="select"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inputType/inputType_select_gridView_column.xml)

YouTube 동영상 (https://youtu.be/QwmMkijoymM)

inputType="spinner"

inputType="spinner"

최소값 및 최대값 설정

inputType="spinner" 컬럼의 경우, minmax 속성으로 최소값과 최대값을 지정할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inputType/inputType_spinner_min_max_gridView_column.xml)

YouTube 동영상 (https://youtu.be/brUpez4WXvc)

아이콘 표시

inputType="spinner" 컬럼의 viewType="icon" 설정을 추가하면 해당 컬럼의 셀에 화살표 아이콘을 표시할 수 있습니다.

YouTube 동영상 (https://youtu.be/hfi2sQqtKsU)

inputType="text"

사용 금지 문자 지정

gnoreChar 속성 혹은 setIgnoreChar() 함수를 사용하여 inputType"text", "textImage", 혹은 "secret"인 컬럼에서 금지할 문자를 지정할 수 있습니다.

$r_title(사용 예)
// column1의 inputType은 "text", "textImage", "secret" 중 하나.
// column1에 영문 대소문자 입력 제한.
gridView1.setIgnoreChar("column1", "a-zA-Z");

inputType="textImage"

텍스트와 이미지 표시 순서 (imageAlign)

inputType="textImage" 컬럼에서 imageAlign 설정을 이용하여 컬럼의 아이콘 이미지를 컬럼의 왼쪽이나 오른쪽에 표시할 수 있습니다.

inputType="textImage" imageAlign="left"

inputType="textImage" imageAlign="right"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/gridView.column/imageAlign_gridView_column/)

YouTube 동영상 (https://youtu.be/tmJwhCkyO_g)

셀 렌더링 방식 (textImageRenderType)

inputType="textImage" 컬럼의 셀들을 렌더링하는 방법을 지정할 수 있습니다. textImageRenderType 속성 값을 아래와 같이 지정하십시오.

다음은 GridView를 브라우저에서 렌더링한 후 개발자 도구를 통해 HTML 태그들을 확인한 모습입니다.

textImageRenderType="component" (기본 값)

textImageRenderType="div"

inputType에 따른 아이콘 표시

기능 설명

설명

  • inputType에 따라 해당 아이콘을 표시.

관련 API

  • viewType="default" 셀을 클릭해야 해당 아이콘이 표시됨.

  • viewType="icon" (셀 클릭 없이도) 바로 아이콘이 표시됨.

viewType

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/inputType/viewType_inputType_gridView_column.xml)

YouTube 동영상 (https://youtu.be/_wk3gTOxPt4)

inputType에 따른 일부 선택 항목 숨기기

gridView.columninputType이 아래 중 하나이고, DataList와 바인딩하여 선택 항목을 표시할 경우, setColumnVisibleColumn() 함수를 사용하여 일부 선택 항목을 숨길 수 있습니다.

숨길 항목은 GridView 컬럼과 바인딩된 DataList의 특정 컬럼의 값을 기준으로 결정할 수 있습니다. 아래와 같이 setColumnVisibleColumn() 함수의 파라미터로 GridView 컬럼과, DataList의 컬럼, 그리고 숨김 처리 조건으로 사용할 DataList 컬럼의 값을 명시하십시오.

$r_title(사용 예)
// (조건)
// GridView의 column1은 inputType="select"이고, 
// column1은 dataList1과 바인딩되어 있음.

// (실행)
gridView1.setColumnVisibleColumn("column1", "Type", "true");

// (결과)
// dataList1에서 Type 컬럼의 값이 "true"인 행들은,
// GridView의 column1의 선택 항목 목록에서 숨김 처리되어 표시되지 않음.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setColumnVisibleColumn_GridView/)

YouTube 동영상 (https://youtu.be/TG3nZBI8msE)

inputType에 따른 일부 선택 항목 비활성화하기

gridView.columninputType이 아래 중 하나이고, DataList와 바인딩하여 선택 항목을 표시할 경우, setColumnEnableColumn() 함수를 사용하여 일부 선택 항목을 비활성화할 수 있습니다.

비활성화할 항목은 GridView 컬럼과 바인딩된 DataList의 특정 컬럼의 값을 기준으로 결정할 수 있습니다. 아래와 같이 setEnableColumn() 함수의 파라미터로 GridView 컬럼과, DataList의 컬럼, 그리고 비활성화 조건으로 사용할 DataList 컬럼의 값을 명시하십시오.

$r_title(사용 예)
// (조건)
// GridView의 column1은 inputType="select"이고, 
// column1은 dataList1과 바인딩되어 있음.

// (실행)
gridView1.setColumnEnableColumn("column1", "Type", "false");

// (결과)
// dataList1에서 Type 컬럼의 값이 "false"인 행들은,
// GridView의 column1의 선택 항목 목록에서 비활성화되어 표시됨.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setColumnEnableColumn_GridView.xml)

YouTube 동영상 (https://youtu.be/0IybbS4LnxU)

gridView.column

GridView의 각 컬럼을 선택한 후 해당 컬럼의 속성을 설정할 수 있습니다.

GridView 컬럼의 dataType 확인 및 변경

setDataTypegetDataType 함수를 사용하여 GridView 컬럼의 dataType을 변경할 수 있습니다.

$r_title(사용 예)
gridView1.getDataType ( “col1” );
// 리턴 값 (예시) : "text"

gridView1.setDataType ( “col1”, “float” );
// col1 컬럼의 dataType을 float로 변경.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setDataType_getDataType_GridView.xml)

YouTube 동영상 (https://youtu.be/5jcVHiTcUuQ)

dataType="date"로 변경하고 displayFormat 설정

$r_title(사용 예)
var options = {
    displayFormat: "dd-MM-yyyy"
}

gridview1.setDataType("New", "date", options);

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setDataType_date_GridView.xml)

YouTube 동영상 (https://youtu.be/fOV1CcG-ohE)

컬럼 숨기기

hidden 속성을 이용하여 열을 숨길 수 있습니다. 또한, setColumnVisible(colIndex, colVisible) API를 사용하여 열 숨기기 기능을 동적으로 사용할 수 있습니다.

$r_title(사용 예)
<w2:column id="openDate" style="height:70px" inputType="calendar" width="70" rowSpan="2" displayFormat="yyyy.MM.dd" hidden="true"></w2:column>
<w2:column id="nation" style="height:70px" inputType="text" width="70" rowSpan="2" hidden="true"></w2:column>

또한, setColumnVisible(colIndex, colVisible) API를 사용하여 열 숨기기 기능을 동적으로 사용할 수 있습니다.

텍스트 정렬

textAlign 속성으로 텍스트를 좌, 우, 중앙으로 정렬할 수 있습니다. 기본 값은 중앙(center)입니다.

$r_title(사용 예)
<w2:column id="orgtitle" style="height:35px" inputType="text" width="200" defaultValue="영화제목" textAlign="left"></w2:column>
<w2:column id="userRating" style="height:70px" width="60" inputType="text" rowSpan="2" dataType="number" displayFormat="##.#" defaultValue="0" textAlign="right"></w2:column>

포맷/포맷터

displayFormat

gridView.columdisplayFormat 속성을 사용하여 해당 컬럼의 데이터 표시 형식을 설정할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/gridView.column/displayFormat_gridView_column.xml)

YouTube 동영상 (https://youtu.be/6Zeh7zcZrHU)

displayFormatter

gridView.columdisplayFormatter 속성으로 함수명을 지정한 후 해당 함수를 별도로 정의하여, 해당 컬럼의 데이터 표시 형식을 설정할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/gridView.column/displayFormatter_gridView_column.xml)

YouTube 동영상 (https://youtu.be/rpAfKJRLKqA)

customFormatter

gridView.columcustomFormatter 속성으로 함수명을 지정한 후 해당 함수를 별도로 정의하여, 해당 컬럼의 데이터 표시 형식을 설정할 수 있습니다.

단, 해당 컬럼의 inputType이 아래와 같은 경우에만 유효합니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/gridView.column/customFormatter_gridView_column.xml)

YouTube 동영상 (https://youtu.be/I3IWomt4n7o)

displayFormattercustomerFormatter 동적 변경

setCellDisplayFormattersetCellCustomFormatter 함수를 사용하여 각 셀의 displayFormattercustomerFormatter 속성을 동적으로 변경할 수 있습니다.

기능 설명

설명

  • 각 셀의 displayFormattercustomerFormatter 속성을 동적으로 변경 가능.

  • 해당 셀의 행과 열 인덱스를 지정해야 함.

사용법 2

  • setCellDisplayFormatter (rowIndex, colIndex, formatter);

    • rowIndex: 셀의 행 인덱스

    • colIndex: 셀의 열 인덱스

    • formatter: displayFormatter로 설정하려는 함수 이름

사용법 2

  • setCellCustomFormatter (rowIndex, colIndex, formatter);

    • rowIndex: 셀의 행 인덱스

    • colIndex: 셀의 열 인덱스

    • formatter: customFormatter로 설정하려는 함수 이름

적용 대상 셀

  • inputType="custom"

  • displayFormatter 혹은 customFormatter 속성이 존재

$r_title(사용 예 (setCellDisplayFormatter))

scwin.displayFormatter = function(param){
        	
        	return "** " + param + " **";
 };

....

grd.setCellDisplayFormatter( 2, 2, 'scwin.displayFormatter');		

...
$r_title(사용 예 (setCellCustomFormatter))

scwin.customFormatter = function(data, formattedData, rowIndex, colIndex ){
        	
        	return "[[ " + data + " ]]";
};

....

grd.setCellCustomFormatter( 2, 2, 'scwin.customFormatter' );		

...

dataList.column - importFormatter

dataList.columnimportFormatter 속성으로 사용자 정의 함수를 지정한 후, 해당 함수를 통해 컬럼의 데이터를 변경할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/_DataCollection/importFormatter_dataList_column.xml)

YouTube 동영상 (https://youtu.be/0rb9R-itwAQ)

GridView 이벤트

GridView를 우클릭한 후 Event추가할 이벤트를 선택 후, 해당 로직을 추가하여 이벤트를 추가할 있습니다.

GridView 이벤트 추가

onsort

sortable="true" 속성 설정이 적용된 헤더를 클릭하거나 더블 클릭하여 정렬을 수행할 경우 onsort 이벤트가 발생합니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Events/adding_event_example_onsort_GridView.xml)

YouTube 동영상 (https://youtu.be/lmR6qWDyeqQ)

oncellclick

GridView 셀을 클릭할 경우 oncellclick 이벤트가 발생하며 클릭된 셀의 행 인덱스, 열 인덱스, 컬럼 ID를 인자로 전달합니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Events/oncellclick_2_GridView.xml)

YouTube 동영상 (https://youtu.be/VNIi6KxFbV8)

oncelldblclick

GridView 셀을 더블-클릭할 경우 oncelldblclick 이벤트가 발생하며 클릭된 셀의 행 인덱스, 열 인덱스, 컬럼 ID를 인자로 전달합니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Events/oncelldblclick_GridView.xml)

YouTube 동영상 (https://youtu.be/6tF7LMesjgM)

onscrollstart

onscrollstart 이벤트는 세로 스크롤이 그리드뷰 상단에 닿을 때 발생합니다. alwaysTriggerScrollStart="true" 설정을 적용하면 세로 스크롤이 상단에 닿을 때마다 onscrollstart 이벤트가 발생합니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Events/onscrollstart_alwaysTriggerScrollStart_GridView/)

YouTube 동영상 (https://youtu.be/x9bKnWeS3OA)

ondateselect & onmonthselect & onyearselect

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Events/ondateselect_onmonthselect_onyearselect_GridView.xml)

YouTube 동영상 (https://youtu.be/-2yFh9y4rcQ)

oncontextopen

oncontextopen 이벤트는 GridView의 컨텍스트 메뉴가 표시될 때 발생하며, 반환하는 값은 아래와 같습니다.

$r_title(사용 예)
scwin.gridView1_oncontextopen = function(rowIndex, colIndex, focusedCell,
info) {
     var logStr = "rowIndex=" + rowIndex + ", colIndex=" + colIndex
     + ", isHeader=" + info.isHeader + ", headerId=" + info.headerId;
     WebSquare.logger.printLog(logStr);
     console.log(logStr);
}

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Events/oncontextopen_GridView.xml)

YouTube 동영상 (https://youtu.be/2sRK1QVpSZo)

onheadermouseover & onheadermouseout

onheadermouseoveronheadermouseout 이벤트는 GridView 헤더에 마우스를 대거나 (마우스 오버) 마우스를 뺄 때 (마우스 아웃) 발생하며, 반환하는 값은 아래와 같습니다.

$r_title(사용 예)
scwin.gridView1_onheadermouseover = function(info) {
    alert(info.id + " & " + info.header_id);
};

scwin.gridView1_onheadermouseout = function(info) {
    alert(info.id + " & " + info.header_id);
};

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Events/onheadermouseover_onheadermouseout_GridView.xml)

YouTube 동영상 (https://youtu.be/scCOCdn5lLU)

GridView 주요 기능

틀 고정

열 고정

기능 설명

설명

  • 스프레드시트와 같은 틀고정 기능

관련 API

  • fixedColumn : 좌측에 고정할 열의 갯수

  • fixedRightColumn : 우측에 고정할 열의 갯수

  • setFixedColumn()

  • setFixedRightColumn()

비고

  • 가로 스크롤이 생길 경우 동작.

YouTube 동영상 (https://youtu.be/Kxh6WwZUUWo)

YouTube 동영상 (https://youtu.be/vXsMm4ydtY4)

고정된 열의 이동을 허용하거나 방지하기

fixedColumncolumMove 속성을 사용하여 열(들)을 고정할 경우, fixedColumnNoMove 속성을 사용하여 고정된 열(들)의 이동을 허용하거나 방지할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/fixedColumn_columnMove_fixedColumnNoMove_GridView.xml)

YouTube 동영상 (https://youtu.be/CHgj4fpmYEQ)

행 고정

기능 설명

설명

  • 스크롤링 시에도 항상 표시될 행들을 지정

관련 API

  • fixedRow (속성)

  • setFixedRow(); (함수)

YouTube 동영상 (https://youtu.be/1Gta-JwBQNI)

스크롤 숨기기

fixedColumnScrollHidden 속성 설정을 통해 고정된 영역에는 스크롤을 표시하지 않을 수 있습니다.

fixedColumnScrollHidden="false"

fixedColumnScrollHidden="true"

행 번호 및 상태 표시

속성을 통한 설정 (rowNumVisible & rowStatusVisible)

기능 설명

설명

  • 행의 번호 및 상태를 표시하는 기능

관련 API

  • 행 번호

    • rowNumVisible="true"/"false" (기본값: "false")

    • rowNumHeaderValue

  • 행 상태

    • rowStatusVisible="true"/"false" (기본값: "false")

    • rowStatusHeaderValue

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/rowNumVisible_rowStatusVisible_Gridview.xml)

YouTube 동영상 (https://youtu.be/BOpVAFxToUI)

행 상태


Status

StatusValue

이미지

초기상태

R

0

없음

갱신

U

1

삽입

C

2

삭제

D

3

삽입후 삭제

V

4

$r_title(상태 변경 (예))
grid1.setCellData(1, 'userRating', 5.88); // 갱신 상태.
grid1.deleteRow(2);                       // 삭제 상태.
grid1.insertRow(grid1.getRowCount());     // 삽입 상태.

동적 설정

행 번호 컬럼 (setRowNumVisible())

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setRowNumVisible_GridView.xml)

YouTube 동영상 (https://youtu.be/0TGGOtcwl-Q)

행 상태 컬럼 (setRowStatusVisible())

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setRowStatusVisible_GridView.xml)

YouTube 동영상 (https://youtu.be/8pmqZSebcz8)

헤더 값, 폭, 배경색 지정

행 번호 컬럼

rowNumVisible="true" 속성 설정을 통해 GridView 각 행의 번호를 표시하는 컬럼을 사용할 경우, 아래 속성들을 설정하여 행 번호 표시 컬럼의 헤더 값과 폭, 배경색 또한 지정할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/rowNumVisible_rowNumHeaderValue_rowNumWidth_rowNumBackgroundColor_GridView.xml)

YouTube 동영상 (https://youtu.be/J9zuH4HJq4Q)

행 상태 컬럼

rowStatusVisible="true" 속성 설정을 통해 GridView 각 행의 상태를 표시하는 컬럼을 사용할 경우, 아래 속성들을 설정하여 행 상태 표시 컬럼의 헤더 값과 폭을 지정할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/rowStatusVisible_rowStatusHeaderValue_rowStatusWidth_GridView.xml)

YouTube 동영상 (https://youtu.be/xiPsLhJgKrU)

$r_title(번호 및 상태 컬럼 표시 (예))
<w2:grid id="grid1" baseNode="item"
  repeatNode="filmo"
  style="position: absolute ;left:0px;top:0px;width: 800px;height: 400px;"
  valueNode="" sortable="true" resize="true"
  readOnlyBackgroundColor="#D9E6F3"
  readOnly="false" hideHeader="false"
  rowNumVisible="true"
  rowNumHeaderValue="No."
  rowStatusVisible="true"
  rowStatusHeaderValue="상태">

행 번호 표시 컬럼에 마우스-오버 색상 적용

rowNumRowMouseOverColor="true" 속성 설정을 통해 GridView 각 행의 번호를 표시하는 셀이 마우스-오버될 경우 지정한 색상을 적용할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/rowNumRowMouseOverColor.xml)

YouTube 동영상 (https://youtu.be/i5NXh_Ymgx8)

다국어 지원

기능 설명

설명

  • rowStatusVisible="true"rowNumVisible="true" 설정을 사용하면 행 번호 및 상태를 나타내는 컬럼을 표시할 수 있습니다. 이 경우, WebSquare.WebSquareLang에 각 언어의 key 값 별로 텍스트를 정의하여 행 번호 및 행 상태 컬럼의 헤더를 다국어로 표시할 수 있습니다.

관련 API

  • rowStatusLocaleRef: 행 상태 컬럼에 표시할 헤더의 키 값.

  • rowNumLocaleRef: 행 번호 컬럼에 표시할 헤더의 키 값.

$r_title(사용 예 (행 순서/상태 컬럼의 헤더를 순번/상태 대신 Number/Status로 표시))
...
<script 
	...
	scwin.init = function(){
      	WebSquare.WebSquareLang = {
			'rowNum' : 'Number',
        	'rowStatus' : 'Status' 
        	};
	};
        
scwin.init();]]></script>

<w2:gridView 
	... 
	rowNumLocaleRef="rowNum" rowStatusLocaleRef="rowStatus" 
	rowNumVisible="true" rowStatusVisible="true" 
	rowNumHeaderValue="순번" rowStatusHeaderValue="상태"
	... 
</w2:gridView>

...

컬럼

컬럼 폭 자동 맞춤 (autoFit)

기능 설명

설명

  • 각 컬럼의 폭을 조절하여 그리드 폭 전체를 채우는 기능

관련 API

  • autoFit="allColumn" (모든 컬럼의 폭을 조정)

  • autoFit="lastColumn" (마지막 컬럼의 폭만 조정)

  • setAutoFit() (autoFit 속성 설정)

  • clearAutoFit() (autoFit 속성 해제)

비고

  • 그리드의 너비가 모든 열의 너비의 합보다 작아 x축으로 스크롤이 생길 경우에는 autoFit 속성이 적용되지 않습니다.

autoFit

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/autoFit_GridView.xml)

YouTube 동영상 (https://youtu.be/pjEYTl_b7TI)

autoFit & autoFitMinWidth

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/autoFit_autoFitMinWidth_GridView.xml)

YouTube 동영상 (https://youtu.be/VtwE8p1ALfc)

autoFit="allColumn" & autoFitCellMinWidth

autoFitCellMinWidth 속성을 사용하면 autoFit="allColumn" 설정을 적용하기 위해 필요한 GridView 셀의 최소 너비를 지정할 수 있습니다. GridView 셀의 너비가 autoFitCellMinWidth 속성 값보다 작을 경우, autoFit="allColumn" (모든 열의 너비를 자동으로 맞추는) 설정이 작동하지 않고 가로 스크롤이 생성됩니다.

setAutoFit() & clearAutoFit()

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setAutoFit_clearAutoFit_GridView/)

YouTube 동영상 (https://youtu.be/08K5gCovQcc)

드래깅을 통한 컬럼 폭 조정

기능 설명

설명

  • 헤더 셀을 드래깅하여 해당 컬럼의 폭을 조절할 수 있는 기능

관련 API

  • resize="true"/"false" (기본값: true)

드래깅을 통한 행 번호 컬럼 폭 조정

기능 설명

설명

  • 10만 건 이상의 대량 데이터를 바인딩하여 행 번호가 "...."로 표시될 경우 마웃 드래깅을 통해 컬럼 폭을 조정할 수 있습니다. 아래 속성을 설정하십시오.

관련 API

  • rowNumStatusResize="true"

최소 컬럼 폭 지정

기능 설명

설명

  • 컬럼의 최소 너비를 속성값 정의를 통해 지정할 수 있습니다. minWidth를 통해 최소 너비를 지정할 경우, 마우스 드래깅을 수행해도 컬럼 폭이 해당 너비 이하로 줄어들지 않습니다.

관련 API

  • minWidth (기본 값: 20, 단위: pixels)

컬럼 이동

GridView의 헤더를 드래깅하여 해당 컬럼을 이동할 수 있습니다. 드래깅 시 헤더의 value로 지정한 값이 툴팁으로 나타납니다. 세로 틀로 고정된 컬럼의 경우, 드래깅 가능 여부를 별도로 지정할 수 있습니다.

관련 API

columnMove="true": 해당 컬럼의 이동을 허용.

fixedColumn & fixedColumnNoMove: 세로 틀 고정된 컬럼의 드래깅 허용 여부.

세로 틀 고정된 컬럼의 드래깅

fixedColumn: 세로 틀 고정 대상 컬럼을 지정.

columnMove="true": 틀 고정된 컬럼도 columnMove="true"인 경우 드래깅을 통해 이동 가능.

fixedColumnNoMove="true": fixedColumn을 통해 고정된 컬럼의 경우 columnMove="true" 설정을 적용받지 않음. 즉, 드래깅을 통한 이동 불가능.

헤더 드래깅을 통한 컬럼 이동

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/columnMove_GridView.xml)

YouTube 동영상 (https://youtu.be/3oD-HTt34Hw)

헤더가 병합된 컬럼을 푸터와 함께 이동

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/columnMove_columnMoveWithFooter_GridView.xml)

YouTube 동영상 (https://youtu.be/A--6TD6vDCM)

특정 컬럼의 스타일 직접 설정

setColumnStyle() 함수를 사용하면 지정한 컬럼에 원하는 스타일을 직접 설정할 수 있습니다.

$r_title(사용 예)
// index=1 컬럼에 “color: red;” 스타일 적용. 
grid1.setColumnStyle(1, "color", "red");

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setColumnStyle_GridView.xml)

YouTube 동영상 (https://youtu.be/iz9ZqR_0hqs)

삭제 상태의 행 표시 (hideDeletedRow)

GridView와 바인딩된 DataList의 deleteRow() 혹은 deleteRows() 함수를 사용하여 GridView의 행을 삭제할 경우, 행의 상태(rowStatus)가 삭제("D" )로 변경되지만 해당 행들은 계속 gridView에 표시됩니다. 이 경우, hideDeletedRow 속성을 사용하면 삭제 상태의 행을 GridView에 표시할 수 있습니다.

삭제 상태의 행

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/hideDeletedRow_GridView.xml)

YouTube 동영상 (https://youtu.be/ualtfURZIX8)

동적 행 추가 및 삭제

GridView와 DataList가 바인딩된 경우, insertRow();removeRows(); 함수를 사용하여 행을 새로 추가하거나 삭제할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/_DataCollection/insertRow_removeRows_DataList.xml)

YouTube 동영상 (https://youtu.be/_TfJtScLtoQ)

표시할 행 수 지정

다음은 visibleRowNum 속성 값을 "8"로 지정하여, 8개의 행만 GridView에 표시한 모습입니다.

visibleRowNum="8"

속성을 통한 지정 (visibleRowNum)

다음은 visibleRowNum 속성 값을 "8"로 지정하여, 8개의 행만 GridView에 표시한 모습입니다.

visibleRowNum="8"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/visibleRowNum_GridView.xml)

YouTube 동영상 (https://youtu.be/d-eyEgACxd0)

함수를 통한 지정 (setVisibleRowNum())

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setVisibleRowNum_GridView.xml)

YouTube 동영상 (https://youtu.be/gobAwLOYX1I)

행 표시하기 숨기기

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setRowVisible_clearRowVisible_GridView/)

YouTube 동영상 (https://youtu.be/CTF5kjlN10k)

행 추가, 삭제, 저장 버튼

버튼은 Trigger 혹은 다른 컴포넌트로 나타낼 수 있습니다. 이들 컴포넌트는 다른 컴포넌트와 연계하여 사용할 수 있으며, 이벤트를 사용하여 그리드를 조작할 수 있습니다.

<xf:trigger id="trigger1"
  style="position: absolute ;left:0px;top:0px;width: 100px;height: 25px;"
  type="button">
  <xf:label>행 추가</xf:label>
  <script ev:event="onclick"
    type="javascript"><![CDATA[
      grid1.insertRow( 0 );
  ]]></script>
</xf:trigger>
<xf:trigger id="trigger2"
  style="position: absolute ;left:100px;top:0px;width: 100px;height: 25px;"
  type="button">
  <xf:label>행 삭제</xf:label>
  <script ev:event="onclick"
    type="javascript"><![CDATA[
      var chkDataArr = grid1.getCheckedData("chk");
      var dataArr = [];
      for ( var i = 0; i < chkDataArr.length; i++) {
        dataArr[i] = chkDataArr[i][2];
      }
 
      var qStr = dataArr.join(", ") + " ("
          + chkDataArr.length + "건)을 삭제하시겠습니까? ";
      output1.setValue(qStr);
      if (chkDataArr.length == 0) {
        output1.setValue("선택된 건수가 없습니다.");
        group3.hide();
      } else {
        group3.show();
      }
 
      gridReadOnly(true);
      floatingLayer1.show();
   ]]></script>
</xf:trigger>
<xf:trigger id="trigger3"
  style="position: absolute ;left:200px;top:0px;width: 100px;height: 25px;"
  type="button">
  <xf:label>저장</xf:label>
  <script ev:event="onclick"
    type="javascript"><![CDATA[
      for ( var i = 0; i < grid1.getRowCount(); i++) {
        var doc = dataList1.getRowXML(i);
        var ret = validCheck(doc, i);
        if (ret == false) {
          alert('필수 입력 항목이 존재합니다.');
          return;
        }
      }
 
      var modifiedXML = dataList1.getModifiedXML();
 
      alert(WebSquare.xml.indent(modifiedXML));
    ]]></script>
</xf:trigger>

셀 너비/높이 설정

속성 기본값 widthstyle = "height"를 통해 셀의 너비와 높이를 조절할 수 있습니다. (예: width="70" style="height:20px")

header가 있는 경우나 셀 병합에 따라 특정 셀만이 그 크기를 결정할 수도 있습니다.

셀의 기본 값 설정

새로 추가되는 셀의 기본 값은 defaultValue를 통해 설정할 수 있습니다.

셀에 데이터가 바인되지 않았을 경우 기본값이 표시됩니다.

XML 데이터: 열의 id와 같은 노드명이 없는 경우

JSON 데이터: 열의 id와 같은 속성 이름이 없는 경우

아래와 같이 defaultValue 속성을 정의하십시오.

<w2:column id="orgtitle"
  style="height:35px" inputType="text"
  width="200" defaultValue="영화제목">
</w2:column>

셀 선택

동적 셀 선택

기능 설명

설명

  • setFocusedMultiCell() 함수를 이용하여 특정 칼럼의 데이터 혹은 특정 영역의 데이터만 선택할 수 있습니다. 선택한 데이터는 복사하여 Excel 등으로 붙여넣을 수 있습니다.

사용 방법

setFocusedMultiCell (startRow, startCol, endRow, endCol);

  • startRow : 포커싱 시작 지점의 행 값.

  • startCol : 포커싱 시작 지점의 열 값.

  • endRow : 포커싱 종료 지점의 행 값.

  • endCol : 포커싱 종료 지점의 열 값.

관련 속성

  • focusMode="row" 혹은 focusMode="both"인 경우 {ignoreFocusMode:true} 옵션을 추가해야 지정한 영역의 셀들만 선택됩니다.

$r_title(사용 예 (1) - 영역 선택)
gridView1.setFocusedMultiCell(3,2,4,3);

// 실행 결과:  (3,2), (3,3), (4,2), (4,3) 셀들이 선택.
$r_title(사용 예 (2) - 전체 선택)
gridView1.setFocusedMultiCell(0,0,totalRow-1,totalCol-1);

// 실행 결과:  전체 셀을 선택.
$r_title(사용 예 (3) - 컬럼 선택)
gridView1.setFocusedMultiCell(0,1,totalRow-1,1);

// 실행 결과: 두 번째 컬럼의 모든 셀을 선택
$r_title(사용 예 (4) - GridView의 focusMode 속성이 "row" 혹은 "both"인 경우)
gridView1.setFocusedMultiCell(1, 1, 16, 2, {ignoreFocusMode:true});

// focusMode 설정에 상관 없이 영역 안의 셀들만 선택됨

focusMode="both"일 때 {ignoreFocusMode:true} 옵션으로 setFocusedMultiCell() 실행

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setFocusedMultiCell_GridView/)

YouTube 동영상 (https://youtu.be/erKy4irXoBY)

읽기 전용 셀 선택

기능 설명

설명

  • 읽기 전용 셀인 경우, 상/하 방향키를 통한 셀간의 이동을 허용하거나 제어

관련 API

  • readOnly="true"

  • ignoreNonEditableCell="true"

  • ignoreNonEditableCellTabnter="true"

셀 선택 금지

드래깅을 통한 셀 텍스트 선택 방지 (noSelect)

noSelect="true" 속성 설정을 통해 마우스 드래깅을 통한 셀 텍스트 선택을 방지할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/noSelect_GridView/)

YouTube 동영상 (https://youtu.be/h9GJfv6sopE)

속성을 통한 금지 (blockSelect)

gridView.columnblockSelect 속성을 사용하면, 해당 컬럼의 셀들이 사용자 선택되는 것을 금지할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/blockSelect_gridView_column.xml)

YouTube 동영상 (https://youtu.be/BKVzAv9EVNM)

함수를 통한 동적 금지 (setBlockSelect())

$r_title(사용 예)
gridView1.setBlockSelect("a", true); 
// id가 "a"인 컬럼의 blockSelect 속성 값을 "true"로 설정.

GridView의 setBlockSelect() 함수를 사용하면 각 컬럼의 셀 선택을 막는 blockSelect 속성 값을 동적으로 설정하여, 셀 선택을 동적으로 차단할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setBlockSelect_GridView.xml)

YouTube 동영상 (https://youtu.be/c0Atmug5x1U)

셀 제목

헤더, 해당 셀의 데이터, label, inputType 등을 조합하여 각 셀의 <td>title 속성을 추가합니다.

관련 API

titleAuto

해당 셀의 inputType에 따른 타이틀 생성 규칙은 아래와 같습니다.

"text" / "link" / "button"

(1) 헤데 셀에 데이터가 있을 때: "헤더 컬럼의 title 값 + 해당 셀의 데이터"

(2) 헤데 셀에 데이터가 없을 때: "헤더 컬럼의 title 값 + 해당 컬럼의 inputType"

"check" / "radio"

(1) 헤데 셀에 label 값이 있을 때: "선택한 값 + label 값"

(2) 헤데 셀에 label 값이 없을 때: "선택한 값 + 해당 컬럼의 inputType"

"select"

(1) 헤더 셀의 label 값이 있을 때: "헤더 컬럼의 title 값 + label 값"

(2) 헤더 셀의 label 값이 없을 때: "헤더 컬럼의 title 값 + 해당 컬럼의 inputType"

제약 사항


아래와 같은 경우 titleAuto 속성을 지원하지 않음.

이 경우 각 셀의 title 속성을 직접 설정해야 함.

(1) 헤더 또는 바디의 셀들이 합쳐진 경우

(2) 헤더가 두 줄인 경우

(3) inputType="text"를 제외한 다른 경우

특정 셀 비활성화

setCellDisabled() 함수를 사용하여, 필터에 의해 숨겨진 셀을 포함한 특정 셀을 동적으로 비활성화할 수 있습니다.

$r_title(사용 예)
gridView1.setCellDisabled(
    0, // 행 인덱스
    0, // 컬럼 인덱스
    true, // 비활성화 여부 
    false // 실제 인덱스 사용 여부
);

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setCellDisabled_GridView.xml)

YouTube 동영상 (https://youtu.be/_CkuXLhoAnE)

셀 변경 상태 표시

cellStatusVisible="true" 속성 설정을 적용하면, 셀 데이터가 추가, 수정, 삭제될 경우, 우측 상단에 아이콘을 표시할 수 있습니다. 이 때, cellStatusIconPosition 속성을 사용하여 해당 아이콘을 표시할 위치를 지정할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/cellStatusVisible_cellStatusIconPosition_GridView.xml)

YouTube 동영상 (https://youtu.be/f0wjJ7mRjsM)

드래깅

동일한 GridView 내에서, 혹은 서로 다른 GridView 사이에서 한 개 이상의 행을 드래그-앤-드롭을 통해 이동할 수 있습니다.

관련 속성 및 함수

dataDragDrop 및 함수 (드래그-앤-드롭 허용)

dragDisplayColumn (툴팁에 표시할 컬럼 ID 지정)

dragStartFunction / dragEndFunction (드래깅 시작/종료 시 실행할 함수 지정)

useShiftKey (Shift 키 사용을 통한 행 선택 허용)

setDrillDownDragDrop() (inputType="drilldown" 컬럼을 포함한 행의 이동 허용)

dataDragSelect (여러 개의 셀들을 드래깅을 통해 선택)

dataDragSelectAutoScroll (드래깅 시 마우스가 그리드뷰를 벗어나도 자동으로 스크롤을 수행)

마우스 드래깅을 통한 행 이동

동일한 GridView 내 혹은 다른 GridView로의 드래깅 (dataDragDrop)

동일한 GridView 내에서, 혹은 서로 다른 GridView 사이에 GridView 행 전체를 드래그-앤-드롭하여 이동할 경우, dataDragDrop="true"로 설정하십시오. Shift 키를 사용할 경우, useShiftKey="true" 설정도 추가합니다.

행을 다른 GridView로 드래깅

드래깅된 행이 다른 GridView로 이동됨

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Dragging/dataDragDrop_GridView.xml)

YouTube 동영상 (https://youtu.be/Mycybcw6kZ4)

동일한 GridView 내에서만 드래깅 (dataDragDropSelf)

dataDragDropSelf="true"로 설정을 적용하면 동일한 GridView 내에서만 드래깅으로 행을 이동할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Dragging/dataDragDropSelf_GridView.xml)

YouTube 동영상 (https://youtu.be/RpqcN6rku28)

다른 GridView로의 드래깅 (dataDragDropOther)

dataDragDrop="true" 속성 설정을 통해 GridView의 행 이동을 허용할 경우, dataDragDropOther="true" 설정을 추가하면, 다른 GridView로의 행 이동만 허용할 수 있습니다. 즉, 동일한 GridView 내에서의 행 이동은 금지할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Dragging/dataDragDropOther_GridView.xml)

YouTube 동영상 (https://youtu.be/OaPwYvixkpA)

inputType="drilldown" 컬럼을 포함한 GridView에서의 드래깅

inputType="drilldown" 컬럼을 포함한 행들을 GridView 내에서, 혹은 서로 다른 GridView 사이에서 드래깅하여 이동할 수 있습니다. setDrillDownDragDrop() 함수를 사용하십시오. 단, GridView에는 dataDragDrop="true" 설정이 있어야 합니다.

$r_title(사용 예)
gridView1.setDrillDownDragDrop(true);

inputType="drilldown" 컬럼을 포함한 행을 다른 GridView로 드래깅

드래깅 후 다른 GridView로 이동된 모습

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Dragging/setDrillDownDragDrop_GridView/)

YouTube 동영상 (https://youtu.be/CAh0xUkNLts)

행 이동을 위한 마우스 드래깅 시작/종료 시 실행할 함수 지정

드래깅 시작/종료 시 실행할 함수는 dragStartFucntiondragEndFunction 속성을 통해 지정할 수 있습니다. 단, 해당 함수는 직접 정의해야 합니다.

$r_title(사용 예)
// gridView1
  dataDragDrop="true" 
  dragDisplayColumn="orgtitle"
  dragStartFunction="dragStart1"
  dragEndFunction="dragEnd1"
  ...
 
// gridView2 
  dataDragDrop="true"
  dragDisplayColumn="orgtitle, openDate"
  dragStartFunction="dragStart2"
  dragEndFunction="dragEnd2" 
  ...
$r_title(dragStart1(), dragEnd1(), dragStart2(), dragEnd2() 정의)
function dragStart1(rowIndex, rowXML) {
  return rowXML;
}
 
function dragEnd1(rowIndex, rowXML) {
  return false;
}
 
function dragStart2(rowIndex, rowXML) {
  grid2.removeRow(rowIndex);
  return rowXML;
}
 
function dragEnd2(rowIndex, rowXML) {
  grid2.setRowXML(rowIndex, rowXML, false);
  return false;
}

마우스 드래깅을 통한 행 이동 시 rowStatus 유지

dataDragDropStatus="true" 설정을 추가할 경우, 하나의 GridView 내에서 드래그-앤-드롭으로 행을 이동할 때 rowStatus를 유지할 수 있습니다. dataDragDropStatus 속성을 기본 값이 "false"로 설정할 경우, 드래그-앤-드롭으로 행이 이동되면 rowStatus가 "C"로 변경됩니다.

단, dragEndFunction 함수를 지정하여 사용하는 경우에는 해당하지 않습니다. dragEndFunction으로 지정된 함수에서 직접 처리해야 합니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Draggingl/dataDragDropStatus_GridView.xml)

YouTube 동영상 (https://youtu.be/_Hh63KhRaII)

마우스 드래깅을 통한 여러 셀들의 선택

드래깅 및 Shift 키를 통한 여러 셀들의 선택

아래 속성과 함수를 사용하여 사용자가 마우스 드래깅 혹은 Shift 키를 통해 여러 개의 셀을 선택하도록 허용할 수 있습니다.

useShiftKey="true"dataDragSelect="true" 속성을 설정하면 마우스 드래깅 혹은 Shift 키를 통해 여러 개의 셀을 선택하고, 선택한 여러 셀들을 한꺼번에 삭제할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Dragging/dataDragSelect_useShiftKey_GridView.xml)

YouTube 동영상 (https://youtu.be/qLlMWSH_WwE)

또한, 마우스 드래깅으로 여러 개의 셀들을 선택할 수 있도록 허용하는 dataDragSelect 속성 및 Shift 키를 사용하여 여러 개의 셀들을 선택할 수 있도록 허용하는 useShiftKey 속성은 각 setDataDragSelect() 함수 및 setUseShiftKey() 함수를 이용하여 동적으로 설정할 수 있습니다.

$r_title(사용 예)
gridView1.setDataDragDrop(false);
gridView1.setDataDragSelect(true);
gridView1.setUseShiftKey(true);

드래깅한 여러 셀들의 선택을 유지

드래깅(dataDragSelect="true") 혹은 Shift 키를 사용(useShiftKey="true")하여 여러 개의 셀들을 선택한 후 마우스 우클릭하면 셀 선택이 해제됩니다. 이 경우, keepDataDragSelection 속성 값을 "true"로 설정하면 마우스를 우클릭해도 여러 셀들이 선택된 상태를 유지할 수 있습니다.

keepDataDragSelection="true"

keepDataDragSelection="false"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Dragging/keepDataDragSelection_GridView.xml)

드래깅 시 자동 스크롤링

드래깅으로 셀을 선택할 경우, 마우스가 GridView 밖을 벗어나면 마우스 방향에 따라 그리드뷰가 상하, 좌우, 대각선 방향으로 자동 스크롤링됩니다.

관련 속성

useShiftKey=“true”

Shift 키를 이용하여 여러 개의 셀을 선택 가능.

dataDragSelect=“true”

여러 개의 셀을 드래깅으로 선택 가능. (useShiftKey="true"인 경우에만 유효.)

dataDragSelectAutoScroll=“true”

마우스가 GridView 밖을 벗어날 경우 자동으로 스크롤링 수행.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Dragging/dataDragSelect_dataDragSelectAutoScroll_2_GridView.xml)

YouTube 동영상 (https://youtu.be/ebiRwO4IaDo)

마우스가 화면을 벗어나도 자동으로 드래깅되도록 허용하는 dataDragSelectAutoScroll 속성은 setDragSelectAutoScroll() 함수를 사용하여 동적으로 설정할 수 있습니다.

$r_title(사용 예)
gridView1.setDataDragSelectAutoScroll(true);

정렬

정렬 기능 추가 및 정렬 아이콘 표시

기능 설명

설명

  • 여러 열의 데이터를 기준으로 오름차순/내림차순 정렬

관련 속성

  • sortable="true"

  • sortEvent

  • showSortableImage="true": 정렬 가능한 컬럼의 헤더에 화살표 아이콘을 표시.

사용 방법

  • 일반 정렬은 하나의 Header 컬럼을 클릭 혹은 더블클릭하면 sortEvent로 설정된 이벤트에 따라 정렬됩니다.

  • 다중 정렬은, <Ctrl>키를 이용하여 여러 컬럼을 선택한 후 클릭 혹은 더블 클릭합니다.

예제 (1)

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Sorting/sortable_showSortableImage_GridView.xml)

YouTube 동영상 (https://youtu.be/ghQHUfvTGEc)

예제 (2)

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Sorting/sortable_sortEvent_showSortableImage_sortedIconPosition_sortOrderReverse_GridView.xml)

YouTube 동영상 (https://youtu.be/P-vOAmfu4mw)

예제 (3) - 정렬 기능을 동적으로 설정

setSortable() 함수를 사용하면 정렬 기능(sortable="true")을 동적으로 설정할 수 있습니다.

$r_title(사용 예)
// 지정한 headerID 헤더에 sortable="true" 설정.
gridView1.setSortable(headerId, true);

// 지정한 headerID 헤더에 sortable="false" 설정.
gridView1.setSortable(headerId, false);

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Sorting/setSortable_GridView.xml)

YouTube 동영상 (https://youtu.be/Noawlm0IjXQ)

여러 컬럼을 정렬

한 개의 컬럼을 정렬한 후에 추가로 다른 컬럼의 헤더를 더블 클릭하여 여러 개의 컬럼을 정렬할 수 있습니다. 단, useCtrlOnMultisort="true" 설정을 사용할 경우에는 Ctrl 키를 누른 채로 컬럼 헤더를 더블 클릭해야 여러 컬럼 정렬이 가능합니다.

세 개의 컬럼을 순서대로 정렬한 경우 (예시)

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Sorting/useCtrlOnMultisort_GridView.xml)

YouTube 동영상 (https://youtu.be/CfSolomJuKI)

헤더 컬럼이 병합된 경우 정렬 기준 컬럼 지정

여러 개의 헤더 컬럼이 병합된 경우, orderByColumn 속성을 통해 정렬 기준이 되는 컬럼을 지정할 수 있습니다. 아래 예제와 같이 세 개의 컬럼 헤더가 병합된 경우, 정렬 아이콘을 클릭할 경우 세 개의 컬럼 중 정렬의 기준이 될 컬럼을 GridView의 Body Column ID로 지정할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Sorting/orderByColumn_gridView_column/)

YouTube 동영상 (https://youtu.be/PlMxvfTZ55o)

라벨 값을 기준으로 정렬

GridView 컬럼의 inputType"autoComplete"이거나 "select"인 경우, 라벨 값을 기준으로 정렬할 수 있습니다. inputType="custom" 컬럼의 inputType"autoComplete"이거나 "select"로 변경한 경우에도 해당합니다. gridView.columnsortLabel 속성을 "true"로 설정하십시오.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Sorting/sortLabel_gridView_column/)

YouTube 동영상 (https://youtu.be/9iG--eshvBI)

데이터가 없을 경우 정렬 버튼 숨기기

sortableshowSortableImage 속성을 사용하여 정렬 버튼을 표시할 경우, GridView에 데이터가 없는 경우에도 정렬 버튼이 표시됩니다. 이 때 hideSortIconOnNoData="true" 속성 설정을 적용하면, GridView와 바인딩된 데이터가 없을 경우 정렬 버튼을 숨길 수 있습니다.

hideSortIconOnNoData="false"

hideSortIconOnNoData="true"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Sorting/hideSortIconOnNoData_GridView.xml)

YouTube 동영상 (https://youtu.be/Ww-uwKEmwBg)

필터링

기능 설명

설명

  • 헤더 셀의 inputType에 따라 바디 컬럼의 데이터를 필터링

관련 API

  • useFilter: 필터링 기능 사용 여부.

  • useFilterList: 필터링 대상 값을 목록으로 표시. 이 때 목록 첫번째에는 "사용자 필터"를 표시. (GridView 전체에 설정.)

  • useFilterListSync: (false로 설정할 경우) setColumnFilter() 함수를 통해 동적으로 필터링을 수행할 경우, 필터링 결과 값만 필터 목록에 표시. (true인 경우에는 해당 컬럼의 전체 값을 필터 목록에 표시.)

필터 아이콘 표시

GridView 컬럼의 헤더에 useFilter="true" 설정을 추가하면 필터 아이콘이 표시되고, 해당 아이콘을 클릭하면 직접 필터를 설정할 수 있습니다.

useFilter="true" (gridView.column)

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Filtering/useFilter_gridView_column.xml)

YouTube 동영상 (https://youtu.be/k6mRK45a-2I)

필터 아이콘 및 필터링 항목 표시

GridView 컬럼의 헤더에 useFilter="true" 설정을 추가한 후, GridView의 useFilterList 속성을 "true"로 설정할 경우, 필터 아이콘을 클릭하면 직접 필터를 설정할 수 있는 메뉴와 함께 필터링 항목이 목록으로 표시됩니다.

useFilter="true" (gridView.column) & useFilterList="true" (GridView)

YouTube 동영상 (https://youtu.be/2Fzwxj5d7SU)

정렬/필터링 아이콘 표시 (showSortableUseFilter)

GridView가 정렬 기능(sortable="true")을 사용하면서 정렬 아이콘을 헤더에 표시하고(showSortableImage="true"), 또 그리드뷰 컬럼이 필터링 기능(useFilter="true")을 사용할 경우, 정렬 아이콘과 필터링 아이콘을 모두 헤더에 표시할 수 있습니다. showSortableUseFilter 속성을 "true"로 설정하십시오.

showSortableUseFilter="true"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Filtering/showSortableUseFilter_GridView.xml)

YouTube 동영상 (https://youtu.be/5iI3EWzctyg)

사용자 정의 필터 저장

기능 설명

설명

  • 사용자가 지정한 필터링 조건이 하단에 별도의 목록으로 저장할 수 있음.

  • 그룹핑 시, 하단의 필터링 조건을 선택하여 그룹핑 결과에 필터링 조건 적용 가능.

관련 API

  • customFilterBox="true"

필터링 후의 컬럼 데이터만 반환

GridView와 DataList가 바인딩된 경우, DataList의 getFilteredColData() 함수를 사용하면 필터링 결과만 반환할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/_DataCollection/getFilteredColData_getColData_DataList.xml)

YouTube 동영상 (https://youtu.be/cmcqLapaPwk)

필터링 후의 데이터만 반환

GridView와 DataList가 바인딩된 경우, DataList의 getAllFilteredData() 함수를 사용하면 필터링 결과만 JSON 형식으로 반환할 수 있습니다. inputType="drilldown" 컬럼에서 특정 노드만 표시할 경우, 표시된 노드들만 필터링된 데이터로 반환할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/_DataCollection/getAllFilteredJSON_DataList.xml)

YouTube 동영상 (https://youtu.be/o9Rc0rjzixc)

숫자 필터링 조건 vs. 알파벳 필터링 조건

필터링 조건이 알파벳 등의 문자인 경우 '<', '<=', '>', '>=' 네 개의 연산자가 표시되지 않고 '=' 및 '<>'만 표시됩니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Filtering/useFilter_gridView_column.xml)

YouTube 동영상 (https://youtu.be/k6mRK45a-2I)

필터링 조건 표시 및 검색

useFilterList="true" 설정을 사용하면 필터링 조건을 목록으로 표시할 수 있습니다.

useFilterList="false"

useFilterList="true"

useFilterList="true"

useFilterList="true"useFilterSearch="true" 설정을 동시에 사용할 경우, 필터링 조건 목록과 함께 필터링 조건을 입력할 수 있는 상자가 표시됩니다.

useFilterList="true" useFilterSearch="true"

필터링 조건 입력 상자는 검색 기능을 함께 제공합니다. 다음은 알파벳 "J"를 입력했을 때 대문자 "J"를 포함하는 필터링 조건이 검색된 모습입니다.

필터링 조건 검색

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Filteringl/useFilterSearch_GridView/)

YouTube 동영상 (https://youtu.be/VPx1BHrDEjc)

필터 상자 폭 자동 맞춤

그리드뷰 컬럼 헤더에 autoFitFilterList="true" 설정을 적용하면, 필터 항목 텍스트 길이에 따라 필터 상자의 폭을 자동으로 조절할 수 있습니다.

autoFitFilterList="false"

autoFitFilterList="true"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/autoFitFilterList_gridView_column.xml)

YouTube 동영상 (https://youtu.be/J086xJbf7Wg)

데이터가 없을 경우 필터 버튼 숨기기

각 헤더에 useFilter="true" 속성 설정을 적용하고 GridView에 showSortableUseFilter="true" 속성 설정을 적용하여 필터 버튼을 표시할 경우, GridView에 데이터가 없는 경우에도 필터 버튼이 표시됩니다. 이 때 hideFilterIconOnNoData="true" 속성 설정을 적용하면, GridView와 바인딩된 데이터가 없을 경우 필터 버튼을 숨길 수 있습니다.

hideFilterIconOnNoData="false"

hideFilterIconOnNoData="true"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Filtering/hideFilterIconOnNoData_GridView.xml)

YouTube 동영상 (https://youtu.be/W8AuO1d5E_o)

동적으로 필터링 적용

DataList의 setColumnFilter() 함수를 사용하여, DataList와 바인딩된 GridView의 특정 컬럼에 필터링을 동적으로 적용할 수 있습니다. 다음은 정규 표현식("regExp")을 사용하여 "col3" 컬럼의 값이 "Freezer" 혹은 "TV"인 데이터만 필터링하기 위한 조건을 정의한 코드입니다.

$r_title(사용 예)
// "col3"의 값이 "Freezer" 혹은 "TV"인 데이터만 필터링

dataList1.setColumnFilter({
    type: 'regExp',
    colIndex: 'col3',
    key: /Freezer|TV/gi,
    condition: 'and'
});

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/_DataCollection/setColumnFilter_DataList.xml)

YouTube 동영상 (https://youtu.be/7gFGWg2RdVY)

그룹핑

그룹핑 기능을 사용하면 한 개 이상의 컬럼을 기준으로 GridView의 데이터를 그룹으로 분류하고 각 그룹에 대한 통계 값을 확인할 수 있습니다. groupby() 함수를 사용할 경우 동적으로 그루핑을 수행할 수 있고, groupbyZone="true" 속성 설정을 사용할 경우 사용자가 직접 컬럼 헤더를 드래그-앤-드롭하여 데이터를 그룹핑할 수 있습니다.

그룹핑 전 Vs. 그룹핑 후

groupby() 함수를 통한 그룹핑

groupby() 함수를 사용하여 그룹핑을 수행할 수 있습니다. 각 옵션에 대한 자세한 설명은 API 가이드를 참고하십시오.

$r_title(사용 예)
var options = {
    sortIndex: [0, 1],
    closeGroup: true,
    groupbyHeader: [{
        inputType: "expression",
        expression: 'toggle() + depthStr() + "    [ " + count() + " Cases ]  "',
        align: "left",
        colSpan: "4"
    }],
    groupbyFooter: {
        depth_0: [{
            colSpan: "3",
            value: "Total",
            align: "right"
        }, {
            inputType: "expression",
            expression: 'SUM("col4")'
        }],
        depth_1: [{
            colSpan: "3",
            value: "Sub Total",
            align: "right"
        }, {
            inputType: "expression",
            expression: 'SUM("col4")'
        }]
    }
};
gridView1.groupby(options);

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Grouping/groupby_GridView.xml)

YouTube 동영상 (https://youtu.be/1THvU4kuA5Y)

그룹핑 헤더에 마지막 단계만 표시

groupby() 함수를 통해 그룹핑을 수행할 경우, showOnlyLastDepth 옵션을 true로 설정하면 헤더에 마지막 단계만 표시할 수 있습니다.

showOnlyLastDepth: true (마지막 단계만 표시)

showOnlyLastDepth: false (모든 단계를 표시)

$r_title(사용 예)
var options = {
    sortIndex: [0, 1, 2],
    closeGroup: true,
    showOnlyLastDepth: true,
    groupbyHeader: [{
        inputType: "expression",
        expression: 'toggle() + depthStr() + "    [ " + count() + " Cases ]  "',
        align: "left",
        colSpan: "4"
    }],
    groupbyFooter: {
        depth_0: [{
            colSpan: "3",
            value: "Total",
            align: "right"
        }, {
            inputType: "expression",
            expression: 'SUM("col4")'
        }],
        depth_1: [{
            colSpan: "3",
            value: "Sub Total",
            align: "right"
        }, {
            inputType: "expression",
            expression: 'SUM("col4")'
        }]
    }
};
gridView1.groupby(options);

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Grouping/groupby_showOnlyLastDepth_GridView.xml)

YouTube 동영상 (https://youtu.be/t6ENhJNOeas)

expression

그룹핑된 각 컬럼의 데이터에 대해 아래의 expression 계산식을 사용할 수 있습니다.

지원 계산식

No.

함수

설명

1

SUM

총합.

2

AVG

평균.

3

MIN

최소값.

4

MAX

최대값.

5

COUNT

해당 컬럼의 각 그룹 당 데이터 건 수.

6

DEPTH

해당 컬럼이 그룹핑된 순서.

7

DEPTHSTR

해당 컬럼에 속한 각 그룹의 value 혹은 label.

8

TOGGLE

해당 컬럼에 속한 각 그룹을 토글할 수 있는 버튼의 생성 여부.

그룹핑 & 필터링

groupbyZone="true" 속성 설정을 사용할 경우, 한 개 이상의 컬럼 헤더를 드래그-앤-드롭하여 그룹핑을 수행할 수 있습니다. 단, ongroupby 이벤트를 추가하여 그룹핑 조건을 지정해야 합니다. 또한 ongroupby 이벤트를 통해 그룹핑 수행 시 groupby() 함수를 사용하십시오.

헤더 드래깅을 통한 그룹핑

그룹핑 영역으로 드래깅된 헤더를 클릭하면 아래와 같이 필터가 표시됩니다. 즉, 사용자는 그룹핑을 수행한 후 필터를 선택하여 필터링도 수행할 수 있습니다.

그룹핑 후 필터링

$r_title(ongroupby 정의 (예시))
scwin.gridView1_ongroupby = function(options) {
  options.groupbyHeader = [{
    inputType: 'expression',
    expression: 'toggle() + depthStr() + "    [ " + count() + " Cases ]  "',
    align: 'left',
    colSpan: 4
  }];
  options.closeGroup = true,
    options.groupbyFooter = {
      depth_0: [{
        colSpan: 3,
        value: "(1) Maximum Value",
        align: "right"
      }, {
        inputType: 'expression',
        expression: 'MAX("col4")'
      }],
      depth_1: [{
        colSpan: 3,
        value: "(2) Maximum Value",
        align: "right"
      }, {
        inputType: 'expression',
        expression: 'MAX("col4")'
      }],
      depth_2: [{
        colSpan: 3,
        value: "(3) Maximum Value",
        align: "right"
      }, {
        inputType: 'expression',
        expression: 'MAX("col4")'
      }]
    };
  gridView1.groupby(options);

};

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Grouping/groupbyZone_GridView.xml)

YouTube 동영상 (https://youtu.be/uu1wFeYjNKc)

그룹핑 영역 높이 및 표시할 메시지 지정

groupbyZoneHeightgroupbyZoneMessage 속성들을 사용하여 그룹핑 영역의 높이와 그룹핑 영역에 표시할 메시지를 지정할 수 있습니다.

groupbyZoneHeight & groupbyZoneMessage

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Grouping/groupbyZoneHeight_groupbyZoneMessage_GridView.xml)

YouTube 동영상 (https://youtu.be/eI_9K0QEJI4)

그룹핑 기준 컬럼 수 제한

groupbyZone 속성 설정을 통한 그룹핑 기능을 사용할 때, 그룹핑을 위해 드래깅할 수 있는 컬럼의 최대 개수를 지정할 수 있습니다. groupbyMaxCount 속성을 사용하십시오.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Grouping/groupbyMaxCount_GridView.xml)

YouTube 동영상 (https://youtu.be/H3h9EJvdoIk)

필터 박스 표시

groupbyZoneFilterBox="true" 속성 설정을 사용할 경우, 그룹핑 후 선택한 필터 조건을 표시하는 필터 박스가 표시됩니다. 필터 박스는 사용자가 설정한 필터링 조건을 표시하고, 사용자가 특정 필터링 조건을 선택할 때 해당 결과물만 화면에 출력합니다.

관련 속성

groupbyFilterBox

groupbyFilterBoxLocation

filterBoxVisibleRowNum

아래와 같이 groupbyFilterBox="false"인 경우, 그룹핑 후 헤더에서 필터링 조건을 선택했지만 필터링 조건이 별도로 표시되지 않습니다.

groupbyFilterBox="false"

아래와 같이 groupbyFilterBox="true"인 경우, 그룹핑 후 헤더에서 필터링 조건을 설정할 경우, 해당 조건이 별도의 박스에 표시됩니다.

groupbyFilterBox="true"

groupbyFilterBoxLocation 속성을 사용할 경우, 필터 박스를 표시할 위치("top"/"bottom")를 지정할 수 있습니다.

groupbyFilterBoxLocation="top"

filterBoxVisibleRowNum 속성은 필터 박스에 표시할 최대 필터링 조건 수를 제한하는데 사용됩니다.

filterBoxvisibleRowNum="5"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Grouping/groupbyFilterBox_groupbyFilterBoxLocation_GridView.xml)

YouTube 동영상 (https://youtu.be/-qWrX0UwPnE)

필터링을 유지한 채로 그룹핑 수행

GridView에 필터링이 설정된 경우, 필터링 조건을 선택한 후 해당 조건으로 필터링된 데이터에 대해서만 그룹핑을 수행할 수 있습니다. customFilterBox="true" 설정을 추가하십시오.

관련 속성은 아래와 같습니다.

필터링 관련

useFilterList="true"

useFilter="true" // 헤더에 설정

그룹핑 관련

groupbyZone="true"

groupbyFilterBox="true"

필터 유지 관련

customFilterBox="true"

아래와 같이 필터를 선택한 후 헤더를 드래깅하여 그룹핑을 수행할 수 있습니다.

필터 선택

customFilterBox="true"인 경우, 필터링이 유지된 채로 그룹핑이 수행됩니다.

customFilterBox="true"

하단의 필터 상자에는 "필터링" 조건과 "필터링 + 그룹핑" 조건이 모두 표시됩니다.

"필터링" 조건 및 "필터링 + 그룹핑" 조건 모두 표시됨

customFilterBox="false"인 경우, 필터링이 풀리고 전체 데이터에 대해 그룹핑이 수행됩니다.

customFilterBox="false"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Grouping/customFilterBox_GridView.xml)

YouTube 동영상 (https://youtu.be/PuhCRu0KEmo)

그룹핑 취소

clearGroupby() 함수를 사용하여 groupbyZone="true" 속성 설정 혹은 groupby() 함수를 통해 수행한 그룹핑을 취소할 수 있습니다.

$r_title(사용 예)
gridView1.clearGroupby();

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Grouping/clearGroupby_GridView.xml)

YouTube 동영상 (https://youtu.be/ODulxBbi1hY)

그룹핑 조건 확인

getGroupbyData() 함수는 groupbyZone 속성을 통해 현재 적용된 그룹핑 조건을 반환합니다.

$r_title(사용 예)
//JSON 형태로 반환. 
 var data = gridView1.getGroupbyData();
 
//string으로 반환.
 var data = gridView1.getGroupbyData(false);

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Grouping/getGroupbyData_GridView.xml)

YouTube 동영상 (https://youtu.be/8QHBOsQZ4VQ)

그룹핑 후 Excel 파일로 다운로드

advancedExcelDownload 함수를 이용할 경우 그룹핑을 수행한 GridView를 Excel 파일로 다운로드할 수 있습니다. 단, 아래의 예제와 같이 options.groupby="true"로 설정하십시오.

options.groupby

설명

그룹핑된 상태의 GridView를 엑셀 파일로 다운로드.

  • true: 그룹핑된 상태의 GridView를 엑셀 파일로 다운로드.

  • false (기본 값): 그룹핑 전의 원래 상태의 GridView를 엑셀 파일로 다운로드.

$r_title(사용 예)
var options = {};
options.fileName = "test.xlsx";
options.type = "0";
options.startRowIndex = 0;
options.startColumnIndex = 0;
options.removeColumns = "";
options.groupby = "true";
gridView1.advancedExcelDownload(options);

병합

셀 병합

동일한 데이터가 연속적으로 반복될 경우, 아래 방식으로 동일한 데이터가 반복되는 셀을 병합할 수 있습니다.

셀 병합 방법

(1) 동일한 컬럼 내에서 연속적으로 동일한 데이터를 갖는 셀을 병합. (열 병합.)

(2) 동일한 행 내에서 연속적으로 동일한 데이터를 갖는 셀을 병합. (행 병합.)

(3) 열 병합 후, 행 병합.

(4) 행 병합 후, 열 병합.

(5) 왼쪽 열이 병합된 경우, 열 병합.

(6) 위쪽 행이 병합된 경우, 행 병합.

YouTube 동영상 (https://youtu.be/PfhoJKm7BPU)

열 기준 병합

열 기준 병합

관련 속성

  • mergeCells="bycol"

관련 함수

  • mergeByCol();

열 기준 병합 (예시)

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Merge/mergeCells_mergeByCol_GridView.xml)

YouTube 동영상 (https://youtu.be/ZwOzIKH8X5w)

행 기준 병합

행 병기준 병합

관련 속성

  • mergeCells="byrow"

관련 함수

  • mergeByRow();

행 기준 병합 (예시)

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Merge/mergeCells_mergeByRow_GridView.xml)

YouTube 동영상 (https://youtu.be/v9fKLoRsxE0)

열 기준 병합 후, 행 기준 병합

열 기준 병합 후, 행 기준 병합

관련 속성

  • mergeCells="bycolrec"

관련 함수

  • mergeByColRec();

아래와 같이 열 병합을 먼저 수행합니다.

열 기준 병합 (예시)

이후 열 병합된 셀들을, 아래와 같이, 다시 행 기준으로 병합합니다.

열 기준 병합 후 행 기준 병합 (예시)

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Merge/mergeCells_mergeByColRec_GridView.xml)

YouTube 동영상 (https://youtu.be/_PjiyUupNqQ)

행 기준 병합 후, 열 기준 병합

행 기준 병합 후, 열 기준 병합

관련 속성

  • mergeCells="byrowrec"

관련 함수

  • mergeByRowRec();

아래와 같이 행 병합을 먼저 수행합니다.

행 기준 병합 (예시)

이후 행 병합된 셀들을, 아래와 같이, 다시 열 기준으로 병합합니다.

행 기준 병합 후 열 기준 병합 (예시)

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Merge/mergeCells_mergeByRowRec_GridView.xml)

YouTube 동영상 (https://youtu.be/Lsv70-rBMMg)

왼쪽 열 기준 열 병합

왼쪽 열 기준 열 병합

관련 속성

  • mergeCells="byrestriccol"

관련 함수

  • mergeByRestricCol();

왼쪽 열 기준 열 병합 (예시)

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Merge/mergeCells_mergeByRestricCol_GridView.xml)

YouTube 동영상 (https://youtu.be/pqgJWbglxlw)

윗 행 기준 행 병합

윗 행 기준 행 병합

관련 속성

  • mergeCells="byrestricrow"

관련 함수

  • mergeByRestricRow();

윗 행 기준 행 병합 (예시)

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Merge/mergeCells_mergeByRestricRow_GridView.xml)

YouTube 동영상 (https://youtu.be/CkW9YXR0w7g)

셀 병합 해제

위에 설명한 방법으로 병합된 셀들을 mergeClear() 함수를 사용하여 병합을 해제할 수 있습니다.

$r_title(사용 예)
gridView1.mergeClear();

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Merge/mergeClear_GridView.xml)

YouTube 동영상 (https://youtu.be/bjXdUUifNlw)

포커스된 셀 병합 및 병합 해제

포커스된 셀 병합 및 병합 해제

관련 함수

  • mergeFocusedCell();

  • mergeSplitFocusedCell(); (병합 해제)

YouTube 동영상 (https://youtu.be/UPplWg8kuXM)

특정 셀들의 병합 및 병합 해제

지정한 영역의 셀을 병합하거나 병합을 해제

특정 셀만 병합

관련 함수

  • mergeByFree( startRow, startCol, endRow, endCol );

  • unmergeByFree( startRow, startCol );

$r_title(사용 예)
gridView1.mergeByFree(0,0,4,4);
$r_title(사용 예)
gridView1.unmergeByFree(0,0);

YouTube 동영상 (https://youtu.be/X16DleFE0Vg)

특정 열에서만 병합

특정 열에서만 병합

관련 속성

  • mergeCells

  • mergeCol

$r_title(사용 예 (속성 지정))
mergeCells="bycol" mergeCol="col3,col5"

// (결과) 
// col3 및 col5 컬럼에서만 셀 병합이 수행됨.

YouTube 동영상 (https://youtu.be/mq_Zq0H_K9c)

틀 고정(행 고정)된 부분에서만 병합

관련 속성

  • fixedRow

  • mergeCellsFixedRows

관련 함수

  • setFixedRow()

  • mergeCellsFixedRows()

YouTube 동영상 (https://youtu.be/MKQ1c0k33bw)

$r_title(사용 예 (속성 지정))
fixedRow="4" mergeCellsFixedRows="bycol"

// (결과) 
// gridView1의 상단 4개의 행을 고정. 
// 행 고정된 부분에서만 행 병합("bycol")이 수행됨.
$r_title(사용 예 (함수 사용))
gridView1.setFixedRow(4);
gridView1.mergeCellsFixedRows("byrow");

// (결과) 
// gridView1의 상단 4개의 행을 고정. 
// 행 고정된 부분에서만 행 병합("byrow")이 수행됨.

틀 고정(열 고정)된 부분에서만 병합

틀 고정(열 고정)된 부분에서만 병합

관련 속성

  • fixedColumn

  • mergeCellsFixedCols="byrow"

관련 함수

  • setFixedCol()

  • setFixedRightCol()

  • mergeCellsFixedCols()

$r_title(사용 예 (속성 지정))
fixedColumn="4" mergeCellsFixedCols="byrow"

// (결과) 
// gridView1의 좌측 4개의 열을 고정. 
// 열 고정된 부분에서만 행 병합("byrow")이 수행됨.
$r_title(사용 예 (함수 사용))
gridView1.setFixedCol(4);
gridView1.setFixedRightCol(5);
gridView1.mergeCellsFixedCols("bycol");

// (결과) 
// gridView1의 좌측 4개의 열을 고정. // gridView1의 우측 5개의 열을 고정. 
// 열 고정된 부분에서만 열 병합("bycol")이 수행됨.

YouTube 동영상 (https://youtu.be/N6Md83g1YgY)

병합에서 제외할 컬럼 지정

아래의 API를 사용하여 셀 병합에서 제외할 컬럼을 지정할 수 있습니다.

병합 상태 확인

관련 API

  • mergeCol( colIndex, flag );

    • colIndex: 제외할 컬럼의 인덱스.

    • flag: 제외 여부를 결정하는 값.

$r_title(사용 예)
mergeCol(3, false);
mergeByCol();

// (결과) 
// 4번째 컬럼을 제외하고 열 병합이 수행됨.

YouTube 동영상 (https://youtu.be/bl6q791x12U)

동일 명칭 속성 주의


동일한 명칭의 mergeCol 속성도 존재.

단, mergeCol 속성은 mergeCells="bycol" 설정을 사용할 때 적용 대상이 되는 컬럼의 ID를 mergeCol="col1, col3"와 같이 지정하는 용도로 사용.

병합 상태 확인

아래의 API를 사용하여 특정 셀의 병합 상태를 확인할 수 있습니다.

병합 상태 확인

관련 API

  • getMerged( rowIndex , colIndex );

    • rowIndex: 병합 여부를 확인하고 싶은 셀의 행 인덱스

    • colIndex: 병합 여부를 확인하고 싶은 셀의 열 인덱스

사용 예

  • gridView1.getMerged(4, 4);: (4, 4) 셀의 셀 병합 상태를 반환. (True/False)

YouTube 동영상 (https://youtu.be/TCRq5oo_wxw)

동일 데이터를 갖는 행 병합

기능 설명

설명

  • 하나의 열, 연속된 행의 공통된 값에 의한 데이터를 병합

  • 데이터 간의 연관성을 시각적으로 표현하여 정보 전달 효과를 높임

관련 API

  • colMerge(바디):"true"로 설정

  • upperColumn (바디): 하나의 셀 병합 열을 기준으로 다른 열을 병합하도록 기준을 설정

$r_title(colMerge & upperColumn)
<w2:column id="pubDate" style="height:70px"
  inputType="select" width="60" rowSpan="2"
  dataType="" allOption="" chooseOption=""
  colMerge="true">
	<w2:choices>
		<w2:itemset nodeset="pubYear/item">
			<w2:label ref="label"></w2:label>
			<w2:value ref="value"></w2:value>
		</w2:itemset>
	</w2:choices>
</w2:column>
<w2:column id="genre" style="height:70px"
  inputType="text" width="70" rowSpan="2"
  displayType="all" colMerge="true"
  upperColumn="pubDate">
</w2:column>

병합에서 제외할 값 지정

mergeExcludeValue 속성을 사용하여 셀 병합에서 제외할 값을 지정할 수 있습니다. 즉, mergeExcludeValue 속성으로 특정 값을 지정해여, 해당 값을 갖는 셀은 병합에서 제외할 수 있습니다.

$r_title(사용 예)
// Korea 혹은 빈 값을 갖는 셀을 병합에서 제외.
mergeExcludeValue = "Korea,$blank"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Merge/mergeExcludeValue_GridView.xml)

YouTube 동영상 (https://youtu.be/1K7Imek4BuA)

스타일

컬럼

컬럼 배경색 지정

setColumnBackgroundColor()getColumnBackgroundColor() 함수를 사용하여 특정 컬럼의 배경색을 지정하고 확인할 수 있습니다.

$r_title(컬럼 배경색 설정)
// 인덱스 지정
setColumnBackgroundColor(2, "green"); 

// 아이디 지정
setColumnBackgroundColor("col_id", "green");
$r_title(컬럼 배경색 확인)
// 인덱스 지정
getColumnBackgroundColor(2);

// 아이디 지정
getColumnBackgroundColor("col_id");

컬럼 배경색 설정 예시

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setColumnBackgroundColor_getColumnBackgroundColor_GridView.xml)

YouTube 동영상 (https://youtu.be/v9XqrXxDW60)

컬럼 글자색 지정

setColumnColor()getColumnColor() 함수를 사용하여 특정 컬럼의 글자색을 지정하고 확인할 수 있습니다.

$r_title(컬럼 글자색 설정)
// 인덱스 지정
setColumnColor(1, "red");

// 아이디 지정
setColumnColor("col_id", "red");
$r_title(컬럼 글자색 확인)
// 인덱스 지정
getColumnColor(1);

// 아이디 지정
getColumnColor("col_id");

컬럼 글자색 설정 예시

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setColumnColor_getColumnColor_GridView.xml)

YouTube 동영상 (https://youtu.be/diWw0lLhNCs)

특정 컬럼에 스타일 직접 적용

setColumnStyle() 함수를 사용하여 지정한 컬럼에 특정 스타일을 동적으로 적용할 수 있습니다.

$r_title(사용 예)
// 인덱스가 0인 컬럼의 폰트 크기를 20px로 변경.

gridView1.setColumnStyle(0, "font-size", "20px");

특정 컬럼에 스타일 직접 적용 예시

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setColumnStyle_GridView.xml)

YouTube 동영상 (https://youtu.be/iz9ZqR_0hqs)

행 배경색 지정

setRowBackgroundColor() 함수를 사용하여, 필터에 의해 숨겨진 행을 포함한 특정 행의 배경색을 동적으로 변경할 수 있습니다.

$r_title(사용 예)
gridView1.setRowBackgroundColor(
    0, // 행 인덱스
    “green", // 배경색
    false // 실제 인덱스 사용 여부
);

행 배경색 지정 예시

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setRowBackgroundColor_GridView.xml)

YouTube 동영상 (https://youtu.be/h4a3nwF5VpE)

행 글자색 지정

setRowColor()getRowColor() 함수를 사용하여 특정 행의 글자색을 지정하고 확인할 수 있습니다.

$r_title(사용 예)
// 행 글자색 지정
setRowColor(5, "magenta");

// 행 글자색 확인
getRowColor(5);

행 글자색 설정 예시

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setRowColor_getRowColor_GridView.xml)

YouTube 동영상 (https://youtu.be/Wty0OZuJkK4)

마우스-오버된 행에 적용할 스타일 설정

마우스-오번된 행에 특정 스타일을 정의할 수 있습니다. 마우스-오버된 행에 적용할 스타일 클래스를 지정한 후, 이를 rowMouseOverClass 속성 값으로 설정하십시오.

$r_title(CSS 정의 예시)
.testFontStyle {
    color: magenta;
    font-size: 20px;
    font-weight: 600;
}

rowMosueOverClass=“testFontStyle” 적용 예시

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Style/rowMouseOverClass_GridView.xml)

YouTube 동영상 (https://youtu.be/m6TbtM062xE)

마우스-오버된 행에 적용할 배경색 설정

마우스-오번된 행에 특정 배경색을 적용할 수 있습니다. 마우스-오버된 행에 적용할 스타일 클래스를 지정한 후, 이를 rowMouseOverColor 속성 값으로 설정하십시오.

rowMouseOver="true" rowMouseOverColor="orange"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Style/owMouseOver_rowMouseOverColor_GridView.xml)

YouTube 동영상 (https://youtu.be/NCAJNV0oRJs)

특정 행에 CSS 클래스 적용

아래 함수들을 사용하여 특정 행에 CSS 클래스를 적용하거나 취소하고, 지정한 행에 적용된 CSS 클래스를 확인할 수도 있습니다.

관련 함수

setRowClass() : CSS 클래스를 적용.

removeRowClass() : CSS 클래스 적용을 취소.

getRowClass() : 현재 적용된 CSS 클래스를 반환.

$r_title(사용 예 (CSS 클래스 적용))
// index="0" 행에 "cRed" 클래스를 적용
gridView1.setRowClass(0, "cRed");

//  index="1" 행에 "cRed" 및 "cBlue" 클래스를 적용
gridView1.setRowClass(1, "cRed cBlue");
$r_title(사용 예 (CSS 클래스 적용 취소))
// index="0" 행의 CSS 클래스 적용을 취소.
gridView1.removeRowClass(0);
$r_title(사용 예 (CSS 클래스 반환))
// index="0" 행에 적용한 CSS 클래스 이름을 반환. 
gridView1.getRowClass(0);

셀 배경색 지정

setCellBackgroundColor() 함수를 사용하여, 필터에 의해 숨겨진 셀을 포함한 특정 셀의 배경색을 동적으로 설정할 수 있습니다.

$r_title(사용 예)
gridView1.setCellBackgroundColor(
    0, // 행 인덱스
    0, // 컬럼 인덱스
    "red", // 셀 배경색
    false // 실제 인덱스 사용 여부
);

셀 배경색 지정 예시

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setCellBackgroundColor_GridView.xml)

YouTube 동영상 (https://youtu.be/qH62eyFsngM)

셀 글자색 지정

setCellColor()getCellColor() 함수를 사용하여 특정 셀의 글자색을 지정하고 확인할 수 있습니다.

$r_title(사용 예)
setCellColor(1, 1, "blue");
getCellColor(1,1);

셀 글자색 지정 예

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setCellColor_getCellColor_GridView.xml)

YouTube 동영상 (https://youtu.be/P7KKscs83Jo)

특정 셀에 스타일 직접 적용

setCellStyle() 함수를 사용하여 지정한 컬럼에 특정 스타일을 동적으로 적용할 수 있습니다.

$r_title(사용 예)
// (0,0) 셀의 배경색을 하늘색으로 변경.
gridView1.setCellStyle(0, 0, "background", "lightblue");

// (1,1) 셀에 “font-size: 30px;” 스타일 적용. 
grid1.setCellStyle(1, 1, "font-size", "30px");

특정 셀에 스타일 직접 적용 예시

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setCellStyle_GridView.xml)

YouTube 동영상 (https://youtu.be/EPRchTEh4A0)

특정 셀에 CSS 클래스 적용

setCellClass() 함수를 사용하여 특정 GridView 셀에 지정한 스타일 클래스를 적용할 수 있습니다.

$r_title(사용 예)
gridView1.setCellClass(0, 0, "blue");

//// 스타일 클래스 정의 ////
.blue { 
	color : blue;
	font-weight: bolder;
	font-size: 40px;
	background-color: yellow;
}

setCellClass() 적용 전

setCellClass() 적용 후

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setCellClass_GridView.xml)

YouTube 동영상 (https://youtu.be/adJpaP0DK_4)

포커싱, 포커스 이동, 편집 모드

기능 설명

설명

  • 사용자에 의한 키 이동, 포커싱, 편집 모드 등을 설정.

관련 API

  • editModeEvent: 편집 모드로 변환하기 위한 이벤트 설정.

  • focusMode: 셀 포커스시, 표현 방법.

  • focusMove: 셀 포커스이후, 포커스 이동을 위해 방향키(상하좌우)사용 방법 설정.

  • keyMoveEditMode: 편집과 관련된 포커스 이동키를 통한 포커스 변경시, 바로 수정모드로 변경여부.

  • enterKeyMove: Enter키 입력시, 포커스 이동방향에 대한 설정.

GridView는 여러가지 키를 통하여 제어할 수 있습니다.

그 밖에도 Home, End, PageUp, PageDown 키 등을 사용할 수 있습니다.

<w2:grid id="grid1" baseNode="item"
  repeatNode="filmo"
  style="position: absolute ;left:0px;top:0px;width: 800px;height: 400px;"
  valueNode="" sortable="true" resize="true"
  readOnlyBackgroundColor="#D9E6F3"
  readOnly="false" hideHeader="false"
  rowNumVisible="true"
  rowNumHeaderValue="No."
  rowStatusVisible="false"
  rowStatusHeaderValue="상태" fixedColumn="2"
  focusMode="both" 
  focusMove="true"
  keyMoveEditMode="true" 
  editModeEvent="ondblclick"
  enterKeyMove="down">
  ...

포커싱 (focusMode)

사용자가 GridView 상에서 셀을 선택할 경우, 선택된 셀 및 해당 셀이 속한 행을 포커싱하는 방법을 설정할 수 있습니다. focusMode, selectedCellColor, selectedRowColor 속성을 아래와 같이 설정하십시오.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/focusMode_selectedCellColor_selectedRowColor_GridView.xml)

YouTube 동영상 (https://youtu.be/-URZvBoXkI4)

DataList의 rowPosition에 해당하는 행을 포커싱 (syncRowPositionOption)

GridView와 바인딩된 DataList의 rowPosition이 변경된 경우, GridView에서도 변경된 rowPosition에 해당하는 행을 포커싱할 수 있습니다. syncRowPositionOption 속성을 "style"로 설정하면 해당 행을 포커싱할 수 있습니다.

포커싱 스타일만 적용


GridVew에 focusMode="none" 설정이 적용된 경우를 제외하고는, 변경된 rowPosition에 해당하는 행이 포커싱됩니다. (단, 이는 해당 행에 포커싱 스타일을 적용하는 것으로, 실제 DOM Element에서는 포커스를 이동시키지 않습니다.)

예를 들어, DataList의 setRowPosition() 함수로 GridView와 바인딩된 DataList의 rowPosition2로 변경하면 GridView의 index="2" 행이 포커싱됩니다.

$r_title(setRowPosition() 함수를 사용한 DataList의 rowPosition의 변경)
// GridView와 바인딩된 dataList1의 rowPosition을 2로 변경. 

dataList1.setRowPosition(2);

syncRowPositionOption="style" (DataList의 rowPosition2로 변경한 경우)

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/syncRowPositionOption_GridView.xml)

포커스 이동 방식 (focusFlow)

포커스가 GridView의 맨 왼쪽, 맨 오른쪽, 상단, 혹은 하단에 있을 경우 이후 포커스 이동 방식을 설정할 수 있습니다. focusFlow 속성을 아래와 같이 설정하십시오.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/focusFlow_GridView.xml)

YouTube 동영상 (https://youtu.be/RRYtExw8mC4)

포커스 설정 (setFocusedCell())

setFocusedCell() 함수를 사용하여 지정한 셀로 포커스를 이동할 수 있습니다. 또한, 이미 선택된 셀이 있는 상태에서 setFocusedCell() 함수로 다른 셀에 포커스를 추가하려면 keepFocusedCell 옵션을 true로 설정하십시오.

$r_title(사용 예)
gridView1.setFocusedCell(1, 1, false,
    {
        keepFocusedCell: true
    }
)

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setFocusedCell_GridView.xml)

YouTube 동영상 (https://youtu.be/kNXNkiRxhWs)

편집 모드 진입

기능 설명

설명

  • 방향키를 사용하여 편집 모드로 셀 간의 이동이 가능.

관련 API

  • arrowMove="true": 방향키 사용.

  • moveKeyEditMode="true": 좌/우 방향키 선택을 통해 편집 모드로 진입

  • moveKeyEditModeAll="true": 상/하/좌/우 방향키 선택을 통해 편집 모드로 진입

키 이동 방법

키 동작 방법

해당 inputType

  • 상하 키: 항상 편집모드로 이동.

  • 좌우 키: 커서가 첫번째 또는 마지막 문자열에서 있을 때만 편집 모드로 이동.

  • inputType

    • text

    • calendar

    • secret

    • textarea

  • 상하 키: 커서가 목록의 첫번째 또는 마지막 항목에 있을 때만 편집 모드로 이동.

  • 좌우 키: 항상 편집모드로 이동.

  • inputType

    • select

    • checkcombobox

inputType="autocomplete"는 미지원.

editModeEvent & editModeEventIcon

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/editModeEvent_editModeEventIcon_GridView.xml)

YouTube 동영상 (https://youtu.be/E_fmzz4D0Zo)

keyMoveEdit & ModemoveKeyEditMode & moveKeyEditModeAll

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/keyMoveEditMode_moveKeyEditMode_moveKeyEditModeAll_GridView.xml)

YouTube 동영상 (https://youtu.be/boSQiWkQzAM)

moveKeyEditMode & moveKeyEditModeAll

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/moveKeyEditMode_moveKeyEditModeAll_GridView.xml)

YouTube 동영상 (https://youtu.be/eJTTpnbLIeY)

Enter 키 입력 시 포커스 이동 방향 설정

사용자가 셀에서 Enter 키를 입력할 경우 포커스가 이동하는 방향 및 편집 모드 진입 여부를 설정할 수 있습니다. enterKeyMove 속성을 아래와 같이 설정하십시오.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/enterKeyMove_GridView/)

YouTube 동영상 (https://youtu.be/mM_2hO0FG1s)

데이터 복사하기/붙여넣기

기능 설명

설명

  • GridView의 데이터는 복사하여 Excel 등으로 붙여넣기가 가능합니다. 단, 아래 속성을 사용하여 특정 칼럼이나 그리드 전체의 데이터의 복사하기 및 붙여넣기를 금지할 수 있습니다.

관련 API

  • PreventCopy: 그리드 전체 데이터를 복사할 수 없음.

  • PreventCopyColumn: 해당 컬럼의 데이터를 복사할 수 없음.

  • PreventPaste: 그리도 전체 데이터를 붙여넣을 수 없음.

  • PreventPasteColumn: 해당 컬럼의 데이터를 붙여넣을 수 없음.

  • checkReadOnlyOnPaste: readOnly 속성이 설정된 컬럼에는 데이터를 붙여넣을 수 없음.

  • checkReadOnlyOnPasteEnable: readOnly 속성이 설정된 컬럼이더라도 붙여넣기가 가능.

  • customPasteFormatter 속성을 지정하면 클립 보드에 복사한 데이터를 붙여넣기 할 때 데이터 모양과 값을 변환할 수 있습니다.

복사 기준 설정 (copyOption)

copyOption 속성을 설정하여 바인딩된 DatatList 값 혹은 현재 화면에 표시된 값 중 어떤 값을 복사할 수 있습니다.

copyOption

"dataList" (기본 값) : 바인딩된 DatatList 값을 복사.

"display" : 현재 화면에 표시된 값을 복사

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/copyOption_GridView.xml)

YouTube 동영상 (https://youtu.be/WEkPBLOgshE)

복사 방식 결정 (copyType)

copyType 속성을 설정하여 셀 데이터를 복사하는 방식을 결정할 수 있습니다.

copyType

"default" (기본 값) : 포커싱된 셀 전체를 복사. 여러 셀을 복사할 경우, 여러 셀에 걸쳐 복사됨.

"native" : 드래깅한 텍스트만 복사. 드래깅된 텍스트는 하나의 셀에만 복사됨.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/copyType_GridView.xml)

YouTube 동영상 (https://youtu.be/wtetKx3tna0)

선택한 셀들을 다른 GridView로 복사

dataDragSelect="true" 혹은 useShiftKey="true" 속성 설정을 사용할 경우, 드래깅이나 Shift 키를 사용하여 여러 개의 셀들을 선택하고, 선택한 셀을 다른 GridView로 복사할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/Dragging/dataDragSelect_useShiftKey_to_copy_GridView/)

YouTube 동영상 (https://youtu.be/bXdHyR0HuJQ)

여러 개의 GridView 셀에 데이터 복사하기

checkEditOnPaste="true" 속성 설정을 추가하면, Excel 파일 등에서 n*n 개 데이터를 복사하여 GridView로 붙여넣기 할 경우, 해당 개수만큼의 GridView 셀에 붙여 넣을 수 있습니다.

checkEditOnPaste="false"

checkEditOnPaste="true"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/checkEditOnPaste_GridView.xml)

YouTube 동영상 (https://youtu.be/QIBmgFv5pho)

데이터 추가

GridView와 DataList가 바인딩된 경우, setData();, setJSON();setXML(); 함수를 사용하여 데이터를 설정하거나 추가할 수 있습니다.

YouTube 동영상 (https://youtu.be/caCW-DB97EI)

데이터가 없을 경우

"데이터 없음" 메시지 표시

GridView와 바인딩된 DataList, LinkedDataList, 혹은 AliasLinkedDataList에 데이터가 없는 경우, noResultMessagenoResultMessageVisibleAlways 속성 설정을 통해 "데이터 없음" 메시지를 표시할 수 있습니다.

noResultMessageVisibleAlways="true" noResultMessage="No data."

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/noResultMessageVisibleAlways_GridView.xml)

YouTube 동영상 (https://youtu.be/rHG-CO9T2eI)

특정 화면 파일 표시

GridView와 바인딩된 DataList, LinkedDataList, 혹은 AliasLinkedDataList에 데이터가 없는 경우, useNoResultMessageURLnoResultMessageURL 속성 설정을 통해 특정 화면 파일을 GridView에 표시할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/useNoResultMessageURL_noResultMessageURL_message/)

YouTube 동영상 (https://youtu.be/Wp3dO7_7RkE)

Excel & CSV

Excel 업로드 (Import)

Excel 업로드 → GridView 참조.

Excel 다운로드 (Export)

GridView → Excel 다운로드 참조.

CSV 업로드

CSV 업로드 → GridView 참조.

CSV 다운로드

GridView → CSV 다운로드 참조.

여러 GridView를 Excel 파일로 다운로드

GridView 여러 개 → Excel 다운로드 참조.

일반 페이징

기능 설명

설명

  • 별도의 설정 없이 서버로부터 데이터를 받아 페이지로 나누어 표현.

  • 그리드를 페이지 별로 표시할 경우 PageList 혹은 PageControl 컴포넌트와 함께 사용 가능.

필요 정보

  • 그리드에 표현하는 전체 데이터 건수

  • 한 페이지 당 표현하는 데이터 건수

  • 각 페이지의 시작 행에 대한 정보

사용 방법

  1. 페이지 수를 구합니다.

  2. PageList (혹은 PageControl) 컴포넌트의 setCount(count) API의 인자 값으로 설정합니다.

  3. 선택된 페이지에 표현할 데이터를 Submission을 통해 서버로 부터 가져옵니다. (PageList 혹은 PageControl 컴포넌트의 onchange 이벤트를 사용.)

<w2:pageList pageSize="2"
  displayFormat="#" id="pageList1"
  style="position:absolute;left:1px;top:410px;width:600px;height:30px;"
  buttonShowType="3">
	<script ev:event="onchange(current,before)"
    type="javascript">
		<![CDATA[
 
        start = current;
        $p.executeSubmission("getMovies"); 
 
      ]]>
	</script>
</w2:pageList>
<xf:submission id="getMovies"
  ref="reqMovies" target="resMovies"
  action="" method="get" mediatype="text/xml"
  encoding="UTF-8" instance="" replace="instance"
  errorHandler="" customHandler=""
  mode="asynchronous" processMsg="조회중입니다.">
	<script type="javascript"
    ev:event="xforms-submit-done">
		<![CDATA[
      var totalCnt = WebSquare.ModelUtil
          .getInstanceValue('resMovies/rss/channel/total/@filmoTotal');
 
      if (totalSetYn != true) {
        var quotient = parseInt(totalCnt / display, 10);
        var remainderYn = (totalCnt % display) ? 1 : 0;
        var count = quotient + remainderYn;
        pageList1.setCount(count);
        totalSetYn = true;
      }
 
      var dataCnt = WebSquare.ModelUtil
          .getInstanceValue('resMovies/rss/channel/total/@filmoDisplay');
      if (dataCnt != 0) {
        var item = WebSquare.ModelUtil
            .findInstanceNode("resMovies/rss/channel/item");
        grid1.setXML(item);
      }        
  ]]>
	</script>
	<script type="javascript"
    ev:event="xforms-submit">
		<![CDATA[
 
      var sub = WebSquare.ModelUtil.getSubmission( "getMovies" );
      sub.action = "/developGuide/getPagingData.jsp?start="
    + start + "&display=" + display;
 
  ]]>
	</script>
</xf:submission>

무한 그리드

기능 설명

설명

  • Y축 스크롤이 끝에 이르렀을 때 다음 데이터를 서버로 부터 가져와 그리드에 이어쓰는 방법

관련 API

  • loadCount: onscrollend 이벤트 발생 조건으로 사용되는 잔여 행 수

  • (예: loadCount="1" 인 경우 onscrollend 이벤는 스크롤 다운으로 행이 1개 남았을 때 발생.)

<w2:grid baseNode="item"
  repeatNode="filmo" id="grid1"
  style="position: absolute ;left:0px;top:0px;width: 600px;height: 340px;"
  valueNode="" sortable="true" resize="true"
  readOnlyBackgroundColor="#D9E6F3"
  readOnly="false" hideHeader="false"
  rowNumVisible="true"
  rowNumHeaderValue="No."
  rowStatusVisible="false"
  rowStatusHeaderValue="상태" fixedColumn="2"
  focusMode="both" focusMove="true"
  keyMoveEditMode="true" editModeEvent="ondblclick"
  enterKeyMove="down" tooltipDisplay="true"
  oddEvenColorDisplay="false" loadCount="1">
  ...
 
  <script type="javascript"
    ev:event="onscrollend"><![CDATA[ 
    start++;
    $p.executeSubmission("getMovies");	
   ]]></script>
</w2:grid>
<xf:submission id="getMovies"
  ref="reqMovies" target="resMovies"
  action="" method="get" mediatype="text/xml"
  encoding="UTF-8" instance="" replace="instance"
  errorHandler="" customHandler=""
  mode="asynchronous" processMsg="조회중입니다.">
  <script type="javascript"
    ev:event="xforms-submit-done"><![CDATA[
      var totalCnt = WebSquare.ModelUtil
          .getInstanceValue('resMovies/rss/channel/total/@filmoTotal');
      if (totalSetYn != true) {
        output2.setValue(totalCnt);
        totalSetYn = true;
      }
 
      var dataCnt = WebSquare.ModelUtil
          .getInstanceValue('resMovies/rss/channel/total/@filmoDisplay');
      if (dataCnt != 0) {
 
        var item = WebSquare.ModelUtil
            .findInstanceNode("resMovies/rss/channel/item");
        grid1.setXML(item, true);
        output1.setValue(grid1.getRowCount());
      }
	]]></script>
  <script type="javascript"
    ev:event="xforms-submit"><![CDATA[
 
    var sub = WebSquare.ModelUtil.getSubmission( "getMovies" );
    sub.action = "/developGuide/getPagingData.jsp?start="
    +start+"&display="+display ;
 
  ]]></script>
</xf:submission>

읽기 전용

readOnly 속성을 통해 특정 열을 읽기 전용으로 설정할 수 있습니다. 행, 열, 셀에 대한 읽기 전용 설정은 API를 통해서도 가능합니다. readOnly 설정은 그리드 전체, 행, 열, 셀 별로 적용가능합니다.

기능 설명

설명

  • GridView 전체에 대한 수정 가능 여부를 설정하는 기능 (수정이 가능할 경우, 수정한 데이터를 바로 서버로 전송 가능.

관련 API

  • readOnly="true"/"false" (기본값: "false")

읽기 전용 셀 선택

기능 설명

설명

  • 읽기 전용 셀인 경우, 상/하 방향키를 통한 셀간의 이동을 허용하거나 제어

관련 API

  • readOnly="true"

  • ignoreNonEditableCell="true"

  • ignoreNonEditableCellTabnter="true"

읽기 전용 설정 동적 적용 및 해제

setReadOnly() 함수를 사용하면 GridView 전체, 혹은 특정 컬럼, 행, 셀에 대해 readOnly 속성을 동적으로 설정하고 해제할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/setReadOnly_GridView.xml)

YouTube 동영상 (https://youtu.be/CaUt7NoNdqM)

표 제목

관련 속성

captionAuto: 표 제목을 자동으로 생성할지 여부.

captionTitle: 표 제목을 자동으로 생성할 때 사용할 텍스트

$r_title(사용 예)
 captionTitle="표 제목" captionAuto="true"

헤더가 항목 1, 항목2, 항목 3인 세 개의 칼럼을 포함하고 위와 같은 설정을 갖는 GridView의 경우 "표 제목 은(는) 항목 1, 항목 2, 항목 3 을(를) 나타낸 표"라는 제목이 생성됩니다.

  1. N/A

      kbd>CaptionTitle
    : 표 제목을 자동으로 생성할 때 사용할 텍스트

captionAuto"true" captionTitle="정보 테이블"

$r_title(표 제목 생성 결과)
<caption id="caption1" style="position:relative; top:100px;" value="this is a grid caption." class="setcaption">정보 테이블은(는) 정보 1,정보 2,정보 3 을(를) 나타낸 표</caption>

captionAuto"true" captionTitle=""

$r_title(표 제목 생성 결과)
<caption id="caption1" style="position:relative; top:100px;" value="this is a grid caption." class="setcaption">정보 1,정보 2,정보 3 을(를) 나타낸 표</caption>
표 제목 생성 규칙

조건

생성 제목

captionAuto="true"

captionTitle="표 제목"

"표 제목 은(는) 항목 1, 항목 2, 항목 3 을(를) 나타낸 표"

captionAuto="true"

captionTitle=""

"항목 1, 항목 2, 항목 3 을(를) 나타낸 표"

GridView에 titleAuto="true" 설정할 경우, 헤더의 inputType="text"인 컬럼의 각 셀의 <td>title 속성을 자동으로 생성할 수 있습니다.

제약 사항


아래와 같은 경우 titleAuto 속성을 지원하지 않습니다. 이 경우 각 셀의 title 속성을 직접 설정해야 합니다.


(1) 헤더 또는 바디의 셀들이 합쳐진 경우

(2) 헤더가 두 줄인 경우

(3) 헤더가 inputType="text"를 제외한 다른 경우

inputType="text" / "link" / "button"

헤더에 데이터가 있을 때

title="헤더 컬럼의 title 값 + 해당 셀의 데이터"

헤더에 데이터가 없을 때

title="헤더 컬럼의 title 값 + 해당 컬럼의 inputType"

inputType="check" / "radio"

헤더에 label 값이 있을 때

title="선택한 값 + label 값"

헤더에 label 값이 없을 때

title="선택한 값 + 해당 컬럼의 inputType"

inputType="select"

헤더에 label 값이 있을 때

title="헤더 컬럼의 title 값 + label 값"

헤더에 label 값이 없을 때

title="헤더 컬럼의 title 값 + 해당 컬럼의 inputType"

제약 사항

아래와 같은 경우 titleAuto 속성을 지원하지 않음. 이 경우 각 셀의 title 속성을 직접 설정해야 함.

(1) 헤더 또는 바디의 셀들이 합쳐진 경우

(2) 헤더가 두 줄인 경우

(3) inputType="text"를 제외한 다른 경우

툴팁

툴팁 표시하기

Body

아래 속성을 지정하여 GridView의 Body에 툴팁을 표시할 수 있습니다.

Header

아래 속성을 지정하여 GridView의 Header에 툴팁을 표시할 수 있습니다.

헤더 툴팁

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/tooltipDisplay_tooltipShowAlways_GridView.xml)

YouTube 동영상 (https://youtu.be/2WxgLVxA4Qs)

툴팁을 표시하지 않을 컬럼의 inputType 지정

기능 설명

설명

  • tooltipDisplay="true"tooltipShowAlways="true" 속성 설정을 적용하여 항상 툴팁을 표시할 경우, tooltipHideInputType 속성을 사용하면 툴팁을 표시하지 않을 GridView 컬럼을 지정하는 기능. (tooltipHideInputType 속성 값으로 툴팁 표시에서 제외할 GridView 컬럼의 inputType을 지정하십시오.)

관련 API

  • tooltipDisplay="true"

  • tooltipShowAlways="true"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/tooltipHideInputType_GridView.xml)

YouTube 동영상 (https://youtu.be/62HEXAOmUUE)

헤더 숨기기

기능 설명

설명

  • GridView 헤더를 숨기는 기능

관련 API

  • hideHeader="true"/"false" (기본값: "false")

  • setHeaderHide(hideYn)

화폐 표시

금액을 표시하는 경우, 각 컬럼 별로 금액 표시 방법 및 화폐 단위를 동적으로 설정할 수 있습니다.

관련 API

changeCurrency: 화폐 단위 별 표시 방법 지정

euroMask, rupeeMask, tengeMask: 각 화페 별 금액 표시 방법

$r_title(사용 예 (1))
...
gridView1.changeCurrency("col1", "euro");

gridView1.changeCurrency("col2", "number");
gridView2.changeCurrency("col3", "rupee", "##,##,###.00");
gridView2.changeCurrency("col4", "tenge", "# ###-00");
...

<w2:gridView id="gridView1"
euroMask="#.###,00" numberMask="#,###.00"
...
</w2:gridView>

<w2:gridView id="gridView2"
...
</w2:gridView>
$r_title(사용 예 (2))
scwin.inputCustomFormat = function(realData, formattedData) {
  return realData.replace(",", ".");
};

scwin.inputCustomUnFormat = function(realData, formattedData) {
  return realData.replace(".", ",");
};

scwin.trigger1_onclick = function(e) {
  var info = {
    colID: "col1",
    type: "euro",
    format: "#.###,00",
    customModelFormatter: "scwin.inputCustomFormat",
    customModelUnformatter: "scwin.inputCustomUnFormat"
  }
  gridView1.changeCurrency(info);
};

맵핑

각 컬럼의 데이터를 서로 다른 컴포넌트와 맵핑할 수 있습니다. 즉, GridView의 특정 행을 선택할 경우, 해당 행 각 컬럼의 값을 서로 다른 컴포넌트에 표시할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/column_mapping_GridView.xml)

YouTube 동영상 (https://youtu.be/47hscGTF_gI)

컨텍스트 메뉴

컨텍스트 메뉴 표시 (바디)

contextMenu="true" 설정을 추가할 경우, GridView를 우클릭하면 컨텍스트 메뉴가 표시됩니다.

컨텍스트 메뉴

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/contextMenu_GridView.xml)

YouTube 동영상 (https://youtu.be/AF3KgtSROwc)

컨텍스트 메뉴 표시 (헤더)

contextMenu="true" 설정만 사용하면 GridView의 바디에 있는 셀을 우클릭할 때만 컨텍스트 메뉴가 표시됩니다. 헤더의 셀을 우클릭해도 컨텍스트 메뉴를 표시하려면 useHeaderContextMenu="true" 속성을 추가하십시오.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/useHeaderContextMenu_contextMenu_GridView.xml)

YouTube 동영상 (https://youtu.be/Ggkkn42zZMU)

Alt 키 + 마우스 좌클릭을 통한 컨텍스트 메뉴 표시

contextMenuAltClick=“true” 설정을 추가할 경우, Alt 키 + 마우스 좌클릭을 통해 GridView의 컨텍스트 메뉴를 표시할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/contextMenuAltClick_GridView/)

YouTube 동영상 (https://youtu.be/iqsNUcLaBIU)

컨텍스트 메뉴를 통한 컬럼 폭 조정

컨텍스트 메뉴를 사용하여 autoFit 속성을 사용할 때와 마찬가지로 GridView 컬럼의 너비를 자동으로 조절할 수 있습니다.

GridView의 컨텍스트 메뉴

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/contextMenu_autoFit_GridView/)

YouTube 동영상 (https://youtu.be/PYq9S0e4T8w)

GridView 높이

초기 height 값 설정

visibleRowNumFix=“true” 설정을 추가할 경우, visibleRowNum 속성 설정에 따라 GridView의 높이를 설정할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/visibleRowNum_visibleRowNumFix_GridView/)

YouTube 동영상 (https://youtu.be/vftrJvR2tT8)

그리기

GridView 상태(스타일) 확인 및 적용

getCurrentGridStyle() 함수를 사용하면 (컬럼 순서, 컬럼 길이, 숨겨진 컬럼, 고정된 컬럼 등과 같은) 현재 GridView의 상태를 XML 문자열 형태로 반환할 수 있습니다. 또한 setGridStyle() 함수를 사용하면 GridView의 특정 상태를 지정하여 해당 상태로 GridView를 다시 그릴 수 있습니다.

  1. GridView를 그립니다.

GridView 초기 상태

  1. 컨텍스트 메뉴를 사용하여 GridView 컬럼을 숨기고 정렬을 수행하여 GridView의 상태를 변경합니다.

컬럼 숨기기 및 정렬을 수행하여 GridView 상태 변경

  1. getCurrentGridStyle() 함수를 사용하여 현재 GridView 상태를 로컬에 저장하십시오.

$r_title(사용 예 (현재 GridView 상태를 로컬에 저장))
var gridStyle = gridView1.getCurrentGridStyle();
$p.local.setItem("gridStyle", gridStyle);
  1. 화면 재로딩 등을 통해 GridView를 초기화합니다.

GridView 초기화

  1. setGridStyle() 함수를 사용하여 앞의 3단계에서 저장한 GridView 상태를 불러와 이를 초기화된 GridView에 적용합니다.

$r_title(사용 예 (로컬에 저장한 GridView의 상태로 GridView를 다시 그리기))
var gridStyle = $p.local.getItem("gridStyle");
gridView1.setGridStyle(gridStyle);

위의 3단계에서 저장한 상태를 GridView에 적용한 후

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/getCurrentGridStyle_setGridStyle_GridView.xml)

YouTube 동영상 (https://youtu.be/B8Nbvp_CF_E)

렌더링 방법 (drawType)

drawType 속성을 사용하여 GridView를 그리는 방법을 결정할 수 있습니다. "virtual"은 화면에 보이는 부분만 그리고, "native"는 전체 GridView를 그립니다.

"virtual""native" 비교

항목

"virtual"

"native"

데이터 양

데이터가 많은 경우 유리.

데이터가 적은 경우 유리.

대용량 그리드

화면에 보이는 영역만 랜더링하므로 대용량 그리드에서 유리.


세로 스크롤 처리

drawType="native" 인 경우 세로 스크롤 처리를 브라우저가 담당하기 때문에 세로 스크롤링이 자연스러움.

행 높이가 다른 경우


GridView 각 행의 높이(height)가 다른 경우 권장.

제약 사항


drawType="native" 사용 시 GridView의 height 속성을 지정해야 함. (visibleRowNum 속성값은 적용되지 않음.)

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/GridView/_General/drawType_GridView.xml)

YouTube 동영상 (https://youtu.be/JvQNnEjHWzc)

모바일

Press 이벤트 지원

hammerEnabled="true" 설정을 추가할 경우, 모바일 환경에서의 Press 이벤트를 PC에서의 셀 더블 클릭 이벤트와 동일하게 처리할 수 있습니다. Press 이벤트로 인식되기 위해 필요한 셀 누르기(Press) 시간은 hammerPressTime 속성으로 지정하십시오.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK에서 보기

(/GridView/Mobile/hammerEnabled_hammerPressTime_GridView.xml)

YouTube 동영상 (https://youtu.be/rLljniG8Bik)

드릴다운 목록 열기/닫기

모바일 환경에서 inputType="drilldown" 컬럼의 드릴 다운 목록을 셀 터치로 열고 닫으려면 drilldownToggle="enter"hammerEnabled="true" 설정을 추가하십시오. 이 경우, inputType="drilldown" 컬럼에서 목록 기호가 있는 셀을 터치하여 목록을 열고 닫을 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK에서 보기

(/GridView/Mobile/drilldownToggle_hammerEnabled_GridView.xml)

YouTube 동영상 (https://youtu.be/K8ACGkL6xio)

GridView 성능을 위한 권장 사항

권장 사항

GridView 조회시 허용 가능한 메모리의 크기는 임계치의 50%내로 사용하는 것을 권장.

그리드의 조회 건수는 약 400,000 Cell을 기준으로 제한하는 것을 권장

GridView를 조회해서 렌더링할 때 소요되는 시간은 전체 셀의 개수에 영향을 받습니다. 셀이 많을수록 GridView를 조회해서 화면에 표시하는데 소요되는 시간은 증가하며, 셀이 많을 수록 증가폭이 더 큽니다.

셀 개수에 따른 GridView 조회 시간

GridView와 관련된 주요 웹 접근성 지침은 아래와 같습니다.

Pivot

컴포넌트 설명

요약

기존 GridView에서 제한적으로 제공했던 Pivot 기능을 전문적으로 제공하는 컴포넌트. Excel의 Pivot Table 기능과 유사.

기능 및 특징

  • 주요 기능

    • 다차원 데이터 분석

    • 드릴다운

    • 축 변환

    • 무한 가로축 스크롤링

  • 통계 함수

    • Sum, Avg, Count, Minimum, Maximum

YouTube 동영상

비고

현재 IE10 버전 이상만 지원.

주요 기능 설명

주요 기능

설명

축 변환

드래그&드롭을 통해 행과 열 사이의 축 변환이 가능하고, 새로운 축을 사용하여 테이블을 다시 생성.

컬럼 리사이징

드래그&드롭을 통해 헤더 사이즈 변경 가능.

Pivot 너비에 따른 컬럼 폭 자동 조절

테이블 전체 혹은 마지막 열의 너비를 화면 크기에 맞게 자동 조절 가능.

  • 관련 속성: autoFit

파일 Import/Export

Excel (xsl, xsls)

파일 내보내기/가져가오 가능.

CSV

컨텍스트 메뉴 제공

고정할 행 및 열을 지정할 수 있음.

포매팅 기능

자용자 정의 메뉴 지정 가능.

통계 함수

(행, 열, 및 전체 데이터에 대한 통계)

숫자 포맷에 필요한 옵션 제공.

  • digitsAfterDecimal

  • scaler

  • showZero

  • decimalSep

  • thousandsSep

  • prefix

  • suffix

헤더 데이터 필터링

화면에 출력하지 않을 헤더 데이터 지정 가능.

DataCollection 바인딩

DataCollection과 바인딩 가능.

텍스트 정렬

  • textAlign (각 항목)

  • bodyTextAlign (바디)

  • headerTextAlign (헤더)

  • totalTextAlign (전체)

총 합계

showGrandTotal="true" 설정을 추가할 경우 총 합계를 표시할 수 있습니다.

총 합계를 표시하거나 숨기기

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/Pivot/showGrandTotal_Pivot.xml)

YouTube 동영상 (https://youtu.be/hsqXcU-qWNY)

총 합계 표시 위치 설정

showGrandTotal="true" 설정을 사용할 경우, grandTotalDisplayType 속성을 통해 총 합계 표시 위치를 선택할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/Pivot/showGrandTotal_grandTotalDisplayType_Pivot.xml)

YouTube 동영상 (https://youtu.be/_Y7BYZg4fUg)

총 합계 라벨 지정

showGrandTotal="true"인 경우,

allTotalName 속성을 전체 행 합계의 Label 값으로,

grandTotalName 속성을 전체 열 합계의 Label 값으로 지정할 수 있습니다.

grandTotalName & allTotalName

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/Pivot/allTotalName_grandTotalName_Pivot.xml)

YouTube 동영상 (https://youtu.be/kyAnzuh-0fc)

Excel 파일로 다운로드

다운로드하기

pivotExcelDownload( opt ); 함수를 이용하여 피봇을 Excel 파일로 다운로드 할 수 있습니다.

$r_title(사용 예)
var options = {};
options.sumColor = "red";
options.sumFontSize = "15";
options.sumFormat = "#,###";
options.bodyFormat = "#,###";

pivot1.pivotExcelDownload(options);

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/Pivot/pivotExcelDownload_Pivot.xml)

YouTube 동영상 (https://youtu.be/2vzPY0QLCok)

컬럼 너비 조정

options.autoSizeColumn 옵션 설정을 통해 헤더 혹은 바디의 텍스트 길이에 따라 해당 컬럼의 너비를 조절할 수 있습니다.

$r_title(사용 예)
var options = {};
options.type = "1";
options.fileName = "excelData.xls";
options.bodyFormat = "#,###,0#"; options.bodyTextAlign = "right";
options.autoSizeColumn = "false"; //“body” “header”

pivot1.pivotExcelDownload(options);

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/Pivot/pivotExcelDownload_options_autoSizeColumn_Pivot.xml)

YouTube 동영상 (https://youtu.be/oQNBP6TfFAU)

세로축 헤더 병합 후 다운로드

headerYMerge="true" 설정을 통해 세로축 헤더 컬럼을 병합한 후 pivotExcelDownload() 함수로 Pivot을 Excel 파일로 다운로드하면, Excel 파일에서도 헤더 병합 상태가 유지됩니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/Pivot/headerYMerge_pivotExcelDownload_Pivot.xml)

YouTube 동영상 (https://youtu.be/cyOfyb2seAE)

Excel 파일을 Pivot으로 업로드

pivotExcelUpload() 함수를 이용하여 Excel 파일을 피봇으로 업로드할 수 있습니다.

$r_title(사용 예)
var options = {};
options.startRowIndex = 1;
options.startColumnIndex = 1;
options.append = 0;

pivot1.pivotExcelUpload(options);

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/Pivot/pivotExcelUpload_Pivot/)

YouTube 동영상 (https://youtu.be/Vxrj5-Wmzjk)

헤더 컬럼 병합 (headerYMerge)

headerYMerge 속성을 사용할 경우, 헤더의 컬럼을 병합할 수 있습니다.

headerYMerge="false"

headerYMerge="true"

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/Pivot/headerYMerge_Pivot.xml)

YouTube 동영상 (https://youtu.be/z8XAjzKVfDw)

헤더 컬럼 이동 금지 (noColumnMove)

noColumnMove="true" 설정을 사용할 경우 드래깅을 통한 헤더 컬럼 이동을 방지할 수 있습니다.

예제 파일


인터넷에서 다운로드 혹은

WEBSQUARE_DEV_PACK의 GUIDE 프로젝트에서 보기

(/Pivot/noColumnMove_Pivot.xml)

YouTube 동영상 (https://youtu.be/jOGforAhQk4)