2013-06-23 4 views
1

jqGrid를 사용하고 있지만 서버 측 기술로 인해 직접 URL을 호출하여 데이터를 가져올 수 없으며 제 3 자 브로커를 통해 서버에 게시 할 수 있습니다. 내 목표는 서버를 호출하고 JSON 문자열을 반환하는 자체 JavaScript 함수를 호출하여 Grid에 데이터를로드 할 수있게하는 것입니다. 내가 뭘하려jqGrid reload 데이터 유형 : 각 요청에 대해 로컬

: 대신

url:'http://127.0.0.1/products/index.php’, 
datatype: 'json', 

의 나는이

datastring:init(), 
datatype: 'jsonstring', 

init() 기능은 서버 측 호출을 수행합니다. 그것은 초기 페이지로드에 잘 작동합니다. 그러나 결코 다시는 호출되지 않습니다. 내가 페이지간에 건너 뛰거나 볼 행 수를 변경할 때. 내 init 함수를 호출하여 데이터베이스의 데이터를 새로 고침해야한다. 그러나 그것은 내 init() 기능을 두 번 이상 호출하지 않습니다. 나는 이것이 결코 변경되지 않는 하드 코딩 된 문자열이라고 생각한다고 가정합니다.

$("#mygrid").trigger("reloadGrid");을 수동으로 호출하려고했지만 작동하지 않는 것 같습니다.

내 그리드는 다음과 같습니다

<script type="text/javascript"> 
$(function(){ 
    $("#list").jqGrid({ 
    datastr:init(), 
    datatype: 'jsonstring', 
    mtype: 'GET', 
    beforeRequest: beforeReq, 
    pager: '#pager', 
    rowNum:5, 
    rowList:[5,10,30], 
    sortname: 'invid', 
    sortorder: 'desc', 
    grouping:true, 
    viewrecords: true, 
    gridview: true, 

    }); 
}); 
</script> 

은 내가 올렉 herehere을 제안했다 무엇을 시도했지만 여전히 다시 내 초기화 함수를 호출하지 않는 것
$("#list").setGridParam({datatype:'jsonstring', page:1}).trigger('reloadGrid'); 

를 호출했습니다.

답변

1

당신의 현재 코드는 init() 전에 한 번 그리드를 만드는 호출합니다. 그런 다음 init()에서 반환 된 결과를 사용하여 표를 만듭니다.

당신이 정말로 다음 reloadGrid를 호출하기 전에 datastr 매개 변수의 값을 재설정 할 수 있습니다 (추가 data 매개 변수를 사용하지 datatype: "local") datatype: 'jsonstring'를 사용해야하는 경우

. 해당 코드는 다음과 같을 수 있습니다.

$("#list").setGridParam({ 
    datatype: "jsonstring", 
    datastr: init() 
}).trigger("reloadGrid", [{page: 1}]); 
+0

감사합니다. 그러나 나는이 코드를 어디에 넣을 지 모르겠다. 나는 beforeRequest 함수 (http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events)에 넣으려고했으나 무한 루프로 끝났다. – Daveo

+0

@Daveo : 당신이 사용한 곳을 게시하지 않았다. trigger ('reloadGrid');'before ('reloadGrid');'$ ("# list") setGridParam ({datatype : 'jsonstring', 페이지 : 1}). 따라서 장소를 어디에 두어야하는지 대답하기가 어렵습니다. 'init()'함수가 동 기적으로 실행되면'reloadGrid'를 ** 사용하지 않고'beforeRequest' ** 내에서'setGridParam'을 사용할 수 있습니다. – Oleg

+0

뛰어난 것 같아서 그리드에서 데이터를 얻을 수 있습니다. 그러나 페이징은 항상 1 페이지 중 1 페이지를 말하고 3 페이지가 있더라도 다음 페이지 버튼이 없습니다. 내 페이지 크기 = 10. 내 JSON은 ' "총": "3", "페이지": "1", "기록": "31",'내가 독일에서 오전 다음에 내가 당신에게 맥주를 빚 – Daveo

관련 문제