레이블이 jqGrid인 게시물을 표시합니다. 모든 게시물 표시
레이블이 jqGrid인 게시물을 표시합니다. 모든 게시물 표시

2011년 8월 2일 화요일

jqgrid - 데이터 받아오기

자바스크립트가 url로 날리는 리퀘스트를 잘 정리한 페이지가 없음.



name
내용
page돌려받고자 하는 페이지
rows페이지 당 몇 행인지
sidx소팅하는 기준이 되는 인덱스
sord내림차순(desc) or 오름차순(asc) 쿼리문에 직접 삽입 가능함


대신 다음과 같은 php 코드를 예제로 보여주고 있음. 나는 post를 선호하지만 그건 각자 알아서;;
<전략>
// Get the requested page. By default grid sets this to 1.
$page = $_GET['page'];

// get how many rows we want to have into the grid - rowNum parameter in the grid
$limit = $_GET['rows'];

// get index row - i.e. user click to sort. At first time sortname parameter -
// after that the index from colModel
$sidx = $_GET['sidx'];

// sorting order - at first time sortorder
$sord = $_GET['sord'];

// if we not pass at first time index use the first column for the index or what you want
if(!$sidx) $sidx =1;

전체 예제코드는 여기.



데이터 수정시 서버에 날리는 request가 정리된 페이지가 없음



name 내용
name:value pair 이름:값의 짝들. colModel에서 설정한 name
id:rowid id로 설정된 값. 대개의 경우에는 pk일 것이다.
oper:edit(add|del) 데이터 변경 종류. 수정, 추가, 삭제
editData return
onclickSubmit return

2011년 7월 25일 월요일

jqGrid, loadonce 옵션 때문에 망한 경험담

loadonce 옵션을 false로 줄 때

auto-increment int인 PK를 가지는 테이블일 때, loadonce:false 상태에서 새로운 row를 등록하면 PK를 제대로 잡지 못한 상태가 된다.


새로운 row 등록 -> 서버쪽에서 PK 생성 -> loadonce:true라서 서버사이드에서 피드백 오지 않음 -> 클라이언트에서는 새로운 데이터에 지맘대로 PK 설정.


이 상태에서 새로 등록된 데이터를 수정하면 지맘대로 설정한 PK값을 가지고 있는 기존 row를 오염시킨다.





loadonce:true로 줄 때

jqGrid에 채우는 데이터가 DB에서 JOIN을 많이 사용한 쿼리문을 통해서 만들어졌을 경우 검색이 제대로 돌아가게 만들기가 만만치 않다.




이 둘 사이에 끼어서 고생 좀 한 적이 있음.