반응형
++ jqgrid
jQueryUI ; jquery를 이용한 UI 프레임워크.
위 사이트에서 gallery탭에 원하는 테마를 선택하고, 다운로드한다. 페이지 이동되면 맨 밑에 다운로드버튼 있음.
jqGrid ; 플러그인. 대량의 데이터를 테이블로 웹에 표현시 사용. jQuery로 된 플러그인임.
ajax 기반 자바스크립트 컨트롤러, jquery-ui를 이용.
페이징, 정렬 등의 기능 제공.
+ 사용 방법
1. webcontent 폴더 내부에 jqgrid 폴더 생성, jqueryui 폴더 생성
jqgrid, jqueryui 압축 파일을 풀어서 위 생성한 폴더로 복사.
2. 연결
-jsp 페이지에 다음과 같이 코딩.
< script src ="js/jquery-1.11.0.js"></script >
<!-- jqGrid 연동코드 -->
<link rel="stylesheet" type="text/css" media="screen"
href="jqueryui/jquery-ui.css" />
<link rel="stylesheet" type="text/css" media="screen"
href="jqgrid/css/ui.jqgrid.css" />
<!--
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
-->
<script src="jqueryui/jquery-ui.js" ></script>
<script src="jqgrid/js/jquery.jqGrid.min.js" ></script>
<!-- -->
헤더부에 위와 같이 필요한 js를 로딩하도록 한다.
<script>
$(function(){
$("#loglist").jqGrid({
//ajax 호출할 페이지
url: 'GetLog',
//로딩중일때 출력시킬 로딩내용
loadtext : '로딩중..',
//응답값
datatype: "json",
mtype : 'POST',
postData:{},
height: 250,
colNames:[ 'ID','등록일' , '등록자' , '장치' , '데이터' ],
colModel:[
{name: 'LOGID'},
{name: 'REGDATE'},
{name: 'MOBILE'},
{name: 'REGDEVTYPE'},
{name: 'DATA', hidden:true }
],
caption: "로그"
});
});
</script>
<div id="divloglist">
<table id= "loglist">
</table>
</div>
위 ajax로 된 GetLog URL은 servlet으로 DB조회 데이터를 json 형태로 위 colModel에 나온 name의 필드명으로 데이터가 조회되도록 한다.
+ 레코드(라인)row 불러오기
-----------------------------------------------------------------------------------
(1) 단일 Row 일 경우 선택하여 값을 불러오기
var obj = $("#ListTable");
var rowId = obj.jqGrid("getGridParam", "selrow");
var value = obj.jqGrid('getCell', rowId, 'ColumnName');
alert(value);
(2) MultiSelect 다중 Row 일 경우 값 출력 해보기
var obj = $("#ListTable");
var idx = obj .jqGrid('getGridParam', 'selarrrow');
for(var i = 0; i < idx.length;i++)
{
var value = obj.jqGrid('getCell', idx[i], ''ColumnName’);
alert(value);
}
-----------------------------------------------------------------------------------
++ 멀티 셀렉트 된 결과 가져오기
-----------------------------------------------------------------------------------
$("#OutputGrid").getGridParam('selarrrow');
를 사용 현재선택되어진 로우의 id값을 가져올수 있다.
리턴값은 Array
var ids = $("#OutputGrid").jqGrid('getDataIDs');
는 전체 로우의 id값을 가져온다
루프를 돌면서 id값을 비교하여 존재한다면 선택된어진 로우이고 없다면 선택 안 된 로우이다.
function setErp() {
var message = "";
var id = $("#OutputGrid").getGridParam('selarrrow');
var ids = $("#OutputGrid").jqGrid('getDataIDs');
var dat = "";
var count = 0;
// 이렇게 하거나
for (var i = 0; i < ids.length; i++) {
var check = false;
$.each(id, function (index, value) {
if (value == ids[i])
check = true;
});
if (check) {
var rowdata = $("#OutputGrid").getRowData(ids[i]);
dat += rowdata.ORDER_CD + ',' + rowdata.ORDER_SEQ + '/';
count++;
}
}
// 또는 이렇게 간단하게.
for (var i = 0; i < ids.length; i++) {
var check = false;
$.each(id, function (index, value) {
if (value == ids[i])
check = true;
});
if (check) {
var rowdata = $("#OutputGrid").getRowData(ids[i]);
dat += rowdata.ORDER_CD + ',' + rowdata.ORDER_SEQ + '/';
count++;
}
}
// 또는 이렇게 간단하게.
$.each(id, function(index,value) {
var rowdata = $("#OutputGrid").getRowData(value) ;
dat += rowData.ORDER_CD+','+rowdata.ORDER_SEQ+'/';
count++ ;
}) ;
$("#strOrder").val(dat);
$("form").submit();
}
* jqgrid multi select option 처리 multiselect: true
jQuery("#OutputGrid").jqGrid({
url: ''
datatype: 'json',
mtype: 'POST',
height: 500,
rowNum: 0,
hidegrid: false,
rowList: [10, 20, 30],
altRows: true,
altclass: 'EvenRowClass',
colNames: [1, 2, 3, 4, 5, 6],
colModel: [
{ name: 'CUSTOMER_CD', index: 'CUSTOMER_CD', width: 80, sortable: false, align: 'center' },
{ name: 'NAME', index: 'NAME', width: 70, sortable: false, align: 'center' },
{ name: 'KIND_NM', index: 'KIND_NM', width: 30, sortable: false, align: 'center' },
{ name: 'MODEL_NM', index: 'MODEL_NM', width: 130, sortable: false, align: 'left' },
{ name: 'ORDER_CD', index: 'ORDER_CD', width: 1, sortable: false, align: 'center', hidden : true },
{ name: 'ORDER_SEQ', index: 'ORDER_SEQ', width: 1, sortable: false, align: 'center', hidden: true }
],
viewrecords: true,
multiselect: true
});
}
* jqgrid multi select option 처리 multiselect: true
jQuery("#OutputGrid").jqGrid({
url: ''
datatype: 'json',
mtype: 'POST',
height: 500,
rowNum: 0,
hidegrid: false,
rowList: [10, 20, 30],
altRows: true,
altclass: 'EvenRowClass',
colNames: [1, 2, 3, 4, 5, 6],
colModel: [
{ name: 'CUSTOMER_CD', index: 'CUSTOMER_CD', width: 80, sortable: false, align: 'center' },
{ name: 'NAME', index: 'NAME', width: 70, sortable: false, align: 'center' },
{ name: 'KIND_NM', index: 'KIND_NM', width: 30, sortable: false, align: 'center' },
{ name: 'MODEL_NM', index: 'MODEL_NM', width: 130, sortable: false, align: 'left' },
{ name: 'ORDER_CD', index: 'ORDER_CD', width: 1, sortable: false, align: 'center', hidden : true },
{ name: 'ORDER_SEQ', index: 'ORDER_SEQ', width: 1, sortable: false, align: 'center', hidden: true }
],
viewrecords: true,
multiselect: true
});
'Develop > Java' 카테고리의 다른 글
CentOS, tomcat 타임존 문제 (2) | 2018.03.06 |
---|---|
tomcat 외부라이브러리 경로 설정 및 톰캣 튜닝 (0) | 2018.03.06 |
jqGrid(2) row(줄) 색상 변경/값 변경 (0) | 2016.01.22 |
한글 인코딩 UTF8 (0) | 2015.06.02 |
tomcat에서 한글 인코딩 UTF8기준 (0) | 2015.06.02 |