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>