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>