♣ Tech & Biz Salon/Tech

jqgrid 헤더 정렬 표현 제어하기

TasteGod 2012. 9. 13. 08:46

jqgrid 를 써보고 있습니다. ( 리스트에서만 조회전용으로 사용 )

조회조건 리스트를 거쳐 상세로 갔다가 다시 리스트로 올때
기존 조회조건(조회/정렬/페이징) 기억해둔것을 initial 조회시에 반영해서 조회하도록 만들었습니다.

그리드 헤더에 정렬 조건을 기억된대로 표현하려 했는데 한참을 삽질했습니다.

jqgrid 왠만한건 구글링 해도 잘 나오길래 원소스 안보고 끝내려고 했는데...
구글링에선 나올듯 말듯하다 못찾았구요.

해결한 것은 뭐 결국... jqgrid.src.js 훑어보며 alert  return 찍어보는거로 처리했습니다.

function getListonLoad() 

{

var myGrid = jq("#grid");

var myGridId = myGrid[0].id;


<c:choose>

<c:when test="${not empty svo.rows && not empty svo.page}">

var lastSortName = jq("#grid").jqGrid('getGridParam','sortname');

   var srchSidx = "<c:out value='${svo.sidx}'/>";

   var srchSord = "<c:out value='${svo.sord}'/>";

   

   var reverseSord;

   

   if( srchSord == "asc")

   {

    reverseSord = "desc";

   }

   else

   {

    reverseSord = "asc";

   }

   

   // 서버단에서 DB STYLE로 변경한 값을 CAMEL 스타일로 변경

   srchSidx = dbStyleToCamel(srchSidx);

//    alert("srchSidx:" + srchSidx );

// $("span.ui-icon-desc","#" + myGridId + "_" + srchSidx ).removeClass('ui-state-disabled');

if( srchSidx != "")

{

jq("span.s-ico",myGrid[0].grid.hDiv).hide();

$("span.ui-icon-" + srchSord,"#" + myGridId + "_" + srchSidx ).removeClass('ui-state-disabled');

$("span.ui-icon-" + reverseSord,"#" + myGridId + "_" + srchSidx ).addClass('ui-state-disabled');

$("span.s-ico","#" + myGridId + "_" + lastSortName ).hide();

$("span.s-ico","#" + myGridId + "_" + srchSidx ).show();

var newSortIdx = fJqGetColIdxSortable(srchSidx);

jq("#grid").jqGrid('setGridParam', {

sortname:"<c:out value='${svo.sidx}'/>",

sortorder:"<c:out value='${svo.sord}'/>",

lastsort:newSortIdx

}

);

}

// alert( fJqGetColIdxSortable("codeKindNm") );

jq("#grid").jqGrid('setGridParam', {

url:gridDataUrl,

rowNum:"<c:out value='${svo.rows}'/>",

page:"<c:out value='${svo.page}'/>",

datatype:"json",

}

);

</c:when>

<c:otherwise>

jq("#grid").jqGrid('setGridParam',

{url:gridDataUrl, page:1, datatype:"json"}

);

</c:otherwise>

</c:choose>

jq("#grid").trigger('reloadGrid');

}