WebSquare5의 DataCollection 종류와 활용
1. DataMap
설명: 단일 객체 형태의 데이터를 저장하고 관리하는 구조로 Key-Value 형태로 데이터를 저장합니다. Key는 컬럼 이름이고 Value는 해당 데이터 값입니다.
주요 활용: 폼(Form) 데이터를 관리하거나 서버와의 단일 데이터 전송에 적합합니다.
<DataCollection id="userInfo" type="map">
<ColumnInfo>
<Column id="username" type="string" />
<Column id="email" type="string" />
</ColumnInfo>
<Row>
<Col id="username">JohnDoe</Col>
<Col id="email">john.doe@example.com</Col>
</Row>
</DataCollection>
2. DataList
설명: 여러 개의 데이터를 행(Row) 단위로 저장하고 관리하는 리스트 형태의 구조입니다. 데이터가 반복적으로 필요한 경우(예: 테이블 데이터) 사용합니다.
주요 활용: 그리드 뷰(GridView)와 연동하거나 반복 데이터 전송에 활용합니다.
<DataCollection id="userList" type="list">
<ColumnInfo>
<Column id="userId" type="string" />
<Column id="userName" type="string" />
<Column id="email" type="string" />
</ColumnInfo>
<Row>
<Col id="userId">1</Col>
<Col id="userName">Alice</Col>
<Col id="email">alice@example.com</Col>
</Row>
<Row>
<Col id="userId">2</Col>
<Col id="userName">Bob</Col>
<Col id="email">bob@example.com</Col>
</Row>
</DataCollection>
3. LinkedDataList
설명: 이미 존재하는 DataList를 필터링하거나 분류하여 사용할 때 적합한 구조입니다. 원본 데이터를 변경하지 않고 가공된 데이터를 활용 가능합니다.
주요 활용: 대량의 데이터에서 특정 조건에 맞는 데이터를 추출하거나, 별도의 뷰를 제공할 때 사용합니다.
var linkedDataList = $p.data.createLinkedDataList("userList", function(rowData) {
return rowData.age > 20; // 나이가 20 이상인 데이터만 필터링
});
4. Alias List/Map
설명: 기존 데이터 객체의 별칭(alias)을 만들어 다른 데이터 컬렉션처럼 사용 가능합니다. XML에서는 사용이 불가능하며, iframe처럼 독립적으로 동작합니다.
주요 활용: 데이터를 다른 범위에서 재활용하거나, 특정 영역 외부로 데이터를 노출할 때 유용합니다.
var aliasDataList = $p.data.createAliasDataList("userList");
5. WFrame과의 연동
설명: WFrame은 iframe과 유사한 역할을 하며, 별도의 자원을 사용하여 독립적인 데이터를 관리합니다. 메모리 사용량이 높아 주의가 필요하지만, 별도의 소스를 다루는 데 적합합니다.
활용 방법: AliasDataList와 함께 사용하여 독립적인 데이터 공간을 생성합니다.
DataCollection의 주요 특징 및 팁
DataCollection과 GridView 연동
GridView 기본 설정:
- rowNumVisible: 행 번호 표시 여부.
- useFilterList: 필터 사용 여부.
- autoFit: 컬럼 너비 자동 조정.
데이터 연동: 먼저 DataCollection을 생성한 뒤 GridView와 매핑합니다.
<GridView id="gridView" data-collection="userList">
...
</GridView>