datatype: "local" 인 상황에서

데이터를 넣는 방식이 아래와 같았다.


function setJqGrid(gridId, json, maxLine){

$(gridId).clearGridData();  // 이전 데이터 삭제

if(json.length>0){

for(var i=0; i<json.length; i++){

jQuery(gridId).jqGrid('addRowData',i+1,json[i]);

if(maxLine < i){

break;

}

}

}

}



그랬더니 엄청 느리네 ??



그래서 아래와 같이 변경하였다.


function setJqGrid(gridId, json, maxLine){

$(gridId).clearGridData();  // 이전 데이터 삭제

if(json.length>0){

jQuery(gridId).jqGrid('setGridParam',

       { 

           datatype: 'local',

           data:json

       })

   .trigger("reloadGrid");

}

}



속도 개선이 확 되었다.

결론 : jqGrid는 그렇게 느리지 않다.


'WEB > jqGrid' 카테고리의 다른 글

[jqGrid] 함수  (0) 2014.01.19
[jqGrid] 정렬 기능 정리  (0) 2014.01.19

- 함수 모아놓은 사이트

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods



- Data

jQuery("#myGrid").jqGrid('getRowData') -> grid의 모든 json data를 가지고 온다.



- Header

var sortName = jQuery(gridId).jqGrid('getGridParam','sortname'); -> 해더 타이틀을 가지고 온다.

var sortOrder = jQuery(gridId).jqGrid('getGridParam','sortorder'); -> 해더 정렬 순서를 가지고 온다.



'WEB > jqGrid' 카테고리의 다른 글

[jqGrid] 속도 개선  (0) 2014.01.29
[jqGrid] 정렬 기능 정리  (0) 2014.01.19

1. 개요


해더를 클릭하여 jqGrid 정렬이 가능하도록 구현하고 싶다.


현재 상태는  

datatype: "local" 로 설정되어 있어 해더를 클릭하면 아무런 반응이 없다.??


jqGrid example site에서는

http://trirand.com/blog/jqgrid/jqgrid.html



datatype: "json" 로 요청하도록 구현되어 있어 url 콜할시에 몇가지 파라미터에 대한 처리가 서버측에서 이루어져야 한다.


해당 해더를 클릭 하면 


_search=false& -> 검색?

nd=1390035776716&

rows=20& -> 한줄 개수

page=1& -> 페이지 

sidx=& -> 컬럼 id

sord=asc -> 정렬 타입


파라미터가 같이 포함되서 넘어가게 됨.


2. 고민


1. client에서 받은 데이터를 바로 정렬할 수 없는 건가?

2. server측에서 쿼리를 변경해서 요청해야 하는건가?

3. paging처리도 같이 고민해봐야 하는데???


3. 해결 방법


3.1 client에서 받은 데이터를 바로 정렬할 수 없는 건가?


엄청 간단하게 해결할 수 있다. 아오 빡!!!(열받았음)

datatype: "local"  에서는

해더를 클릭하면 자동으로 index(sortname)와 sortorder로 자동으로 정렬한다.

단 ) JSON의 ProperyName과 Index가 같거나 index를 생략하면 내부적으로 JSON을 정렬한다.


colModel의 index는 json 요청할 때 필요한 디비와 다를경우 붙여주는것 같다.






'WEB > jqGrid' 카테고리의 다른 글

[jqGrid] 속도 개선  (0) 2014.01.29
[jqGrid] 함수  (0) 2014.01.19

+ Recent posts