Rows/Columns 병합
SBGrid는 행/열 병합 기능을 제공합니다.
요약
SBGrid는 행/열 병합 기능을 제공합니다.입력값
String : 병합 유형
예) datagrid1.strMergeCells : "bycol";
상세설명
setMergeCells()를 이용하여 병합 속성을 설정하게 되면 타입에 맞게 그리드 병합이 실행됩니다.never : 병합을 하지 않습니다.
bycol : 동일한 데이터 값을 갖는 이웃한 셀들을 열 단위로 병합합니다.
byrow : 동일한 데이터 값을 갖는 이웃한 셀들을 행 단위로 병합합니다.
bycolrec : 동일한 데이터가 존재하는 경우 열 단위 병합을 수행한 이후에 병합된 결과에 대해서 행 단위 병합을 수행합니다.
byrowrec : 동일한 데이터가 존재하는 경우 행 단위 병합을 수행한 이후에 병합된 결과에 대해서 열 단위 병합을 수행합니다.
byrestriccol : 이전 열의 병합된 결과에 따라서 다음 열을 병합합니다.
byrestricrow : 이전 행의 병합된 결과에 따라서 다음 행을 병합합니다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
<head>
<meta content="IE=9" http-equiv="X-UA-Compatible">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>SoftBowl SBGrid Example</title>
<script type="text/javascript" src="../../kr/co/softbowl/js/Library/json-minified.js"></script>
<script type="text/javascript" src="../../js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="../../kr/co/softbowl/js/Library/json2.js"></script>
<script type="text/javascript" src="../../kr/co/softbowl/SBGrid.js"></script>
<script type="text/javascript" src="../../js/DATA_JSON_POI_100.js"></script>
<script type="text/javascript">
SBGrid.DEF.DOMAIN = "../../";
<script>
<script type="text/javascript">
var datagrid1;
var grid_data_temp;
var strNowMergeType = "never";
var objJSONdata = new Object();
objJSONdata.objSBGridInitInfo = {
strParentId: "",
strId: "datagrid1",
strCaption: "a^b^c^d^e^f^g^h",
strColWidth: "80,80,80,80,80,80,80,80",
strJsonRef: "",
strRowHeight: "55px",
strDataHeight: "55px",
strStyle: "width:100%; height:500px;",
strBackColorAlternate: "#f7f7f7",
strMergeCells: "",
strExtendLastCol: "noscroll"
};
objJSONdata.arSBGridColumnInitInfo = [
{ "id": "col1", "type": "output", "ref": "a", "style": "text-align:center" },
{ "id": "col2", "type": "output", "ref": "b", "style": "text-align:center" },
{ "id": "col3", "type": "output", "ref": "c", "style": "text-align:center" },
{ "id": "col4", "type": "output", "ref": "d", "style": "text-align:center" },
{ "id": "col5", "type": "output", "ref": "e", "style": "text-align:center" },
{ "id": "col6", "type": "output", "ref": "f", "style": "text-align:center" },
{ "id": "col7", "type": "output", "ref": "g", "style": "text-align:center" },
{ "id": "col8", "type": "output", "ref": "h", "style": "text-align:center" }
];
$(document).ready(function () {
__createElements("sbGridArea", strNowMergeType);
});
function __createElements(strSBGridParentId, strMergeType) {
if (SBGrid.getGrid('datagrid1')) {//SBGrid가 존재하면 제거
datagrid1.destroy();
datagrid1 = null;
}
objJSONdata.objSBGridInitInfo.strParentId = strSBGridParentId;
objJSONdata.objSBGridInitInfo.strMergeCells = strNowMergeType = strMergeType;
if (strMergeType == "never" || strMergeType == "bycol" || strMergeType == "byrow" || strMergeType == "bycolrec" || strMergeType == "byrowrec") {
objJSONdata.objSBGridInitInfo.strJsonRef = "grid_data.merge_normal";
}
else if (strMergeType == "byrestriccol") {
objJSONdata.objSBGridInitInfo.strJsonRef = "grid_data.merge_restric_col";
}
else if (strMergeType == "byrestricrow") {
objJSONdata.objSBGridInitInfo.strJsonRef = "grid_data.merge_restric_row";
}
var strMesage = "";
if (strMergeType == 'never') {
strMesage = "'never' 속성을 지정하면 병합을 하지 않습니다.";
}
else if (strMergeType == 'bycol') {
strMesage = "'bycol' 속성을 지정하면 동일한 데이터 값을 갖는 이웃한 셀들을 열 단위로 병합합니다.";
}
else if (strMergeType == 'byrow') {
strMesage = "'byrow' 속성을 지정하면 동일한 데이터 값을 갖는 이웃한 셀들을 행 단위로 병합합니다.";
}
else if (strMergeType == 'bycolrec') {
strMesage = "'bycolrec' 속성을 지정하면 동일한 데이터가 존재하는 경우 열 단위 병합을 수행한 이후에 병합된 결과에 대해서 행 단위 병합을 수행합니다.";
}
else if (strMergeType == 'byrowrec') {
strMesage = "'byrowrec' 속성을 지정하면 동일한 데이터가 존재하는 경우 행 단위 병합을 수행한 이후에 병합된 결과에 대해서 열 단위 병합을 수행합니다.";
}
else if (strMergeType == 'byrestriccol') {
strMesage = "'byrestriccol' 속성을 지정하면 이전 열의 병합된 결과에 따라서 다음 열을 병합합니다.";
}
else if (strMergeType == '- byrestricrow') {
strMesage = "'byrestricrow' 속성을 지정하면 이전 행의 병합된 결과에 따라서 다음 행을 병합합니다.";
$('#' + strTargetInputTagName).val(strMesage);
}
if (strMergeType.length > 0) alert(strMesage);
objJSONdata.objSBGridInitInfo.strColWidth = "10%,10%,10%,10%,10%,10%,20%,20%";
objJSONdata.objSBGridInitInfo.strRowHeight = "40px";
objJSONdata.objSBGridInitInfo.strDataHeight = "25px";
datagrid1 = SBGrid.DEF.createSBGrid(objJSONdata);
//datagrid1.setRowHeight(0, 30);
}
function gridMerge(strId, strType) {
eval(strId + '.setMergeCells(strType);');
};
</script>
</head>
<body onload="createElements()" class="sbgrid_body" >
<div class="content_group">
<div id="sbGridArea"></div>
</div>
</div>
</body>
</html>