728x90
반응형

아래는 셀렉트박스에서 선택한 값에 따라 헤더의 값이 바뀌는 예제이다. 

만약 셀렉트박스에서 'A제품'을 선택하면 헤더에도 'A제품'이 표시된다.






소스 보기



참조사이트(jqGrid Wiki): http://www.trirand.com/jqgridwiki/doku.php?id=wiki:groupingheadar )



* 헤더 병합 

1. 헤더 만들기

ex) colNames:['날짜','A Co;', 'B Col', 'C Col']


2. 병합할 헤더 지정하기

ex) $("#grid").jqGrid('setGroupHeaders', {

useColSpanStyle: true,

 groupHeaders:[

{ startColumnName: 'ACol', numberOfColumns: 3, titleText: crateName }

 ]

    });


 => startColumnName: 병합할 시작 컬럼명

numberOfColumns: 병합할 컬럼 수

titleText: 병합될 컬럼명 ( titleText : "A 제품"   이렇게 값을 직접 텍스트로 줘도 되고, 위처럼 문자형 데이터(변수)로 줘도 됨)




* 셀렉트박스 선택된 값에 따라 헤더명 바꾸기

1. 셀렉트박스 만들기

<select id="productType" class="text ui-widget-content ui-corner-all">


<c:forEach items="${productList}" var="productList">

<option value="${productList.productCode}">${productList.productName}</option>

</c:forEach>

<!-- 

<option value="productA">A 제품</option>

<option value="productB">B 제품</option>

<option value="productC">C 제품</option> 

-->

</select>


2. 헤더명 바꾸기 

var productName = "";

$("#productType").bind("change", function() {

$("#productType option:selected").each(function () {

productName = $(this).text(); //선택된 셀렉트의 텍스트명 저장(A 제품, B제품, C제품)

        var colModel = $("#grid").jqGrid('getGridParam', 'colModel'); 

// ↑기존 헤더컬럼명을 배열형태로 가져온다 

               $("#grid").jqGrid("setLabel", colModel[1]['name'], productName); 

 // ↑ setLabel 함수로 [1]번째 컬럼명을 productName로 변경 

 /*여기서 colModel[0]['name'] 은 '날짜'이고, 

  colModel[2]['name']은 'A Col',

  colModel[3]['name']은 'B Col',

  colModel[4]['name']은 'C Col'  이다.

 */

               $("#grid").jqGrid('destroyGroupHeader'); //헤더 삭제(초기화 같은..)

 

//다시 병합할 헤더를 세팅해 준다.

  $("#grid").jqGrid('setGroupHeaders', {

useColSpanStyle: true, 

 groupHeaders:[

{startColumnName: 'ACol', numberOfColumns: 3, titleText: productName }

 ]

});

});

});


 

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,