我使用jqGrid,但由於我的服務器端技術,我不能直接調用URL來獲取數據,只能通過第三方代理髮布到服務器。我的目標是能夠通過調用我自己的調用服務器的JavaScript函數並返回JSON字符串來將數據加載到Grid中。jqGrid重新加載數據類型:本地爲每個請求
我試了一下:不是
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>
我打過電話
$("#list").setGridParam({datatype:'jsonstring', page:1}).trigger('reloadGrid');
我試了一下奧列格曾建議here和here但它仍然似乎並沒有再打電話給我的初始化函數。
感謝,似乎工作。不過,我不知道該把代碼放在哪裏。我試圖把它放在beforeRequest函數中(http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events),但它以無限循環結束 – Daveo
@Daveo:你不會在你使用過的地方'$(「#list」)。setGridParam({datatype:'jsonstring',page:1})。trigger('reloadGrid');'before。所以很難回答一個人應該把它放在哪裏。如果'init()'函數同步運行,那麼只需在'beforeRequest' **內使用'setGridParam'而不使用'reloadGrid'。 – Oleg
非常好,似乎工作我可以在網格中獲取數據。然而,分頁不會改變,它總是說1頁中的1頁,即使我有3頁,也沒有下一頁按鈕。 我的頁面大小= 10。 我的JSON是 ' 「總」: 「3」, 「頁」: 「1」, 「記錄」: 「31」,' 下一次,我在德國我欠你一個啤酒 – Daveo