我正在使用MVC構建一個應用程序& Web Api。在視圖上我正在使用JqGrid。以前我們曾經把本地數據分配給JqGrid,它工作正常。現在由於邏輯上的一些變化,我們使用WebApi從服務器獲取數據,這是一個Json數據,我們將它存儲在變量中,然後我們將這個數據對象分配給JqGrid,但數據不會顯示。 而不是數據選項我給web api的「網址」,然後一切工作正常,但只要我們使用「數據」選項然後jqgrid不起作用。可能的原因是什麼?這樣做的理由是我想在本地添加,編輯和更新數據,然後當最終保存按鈕被按下時,數據將返回到服務器。使用WebApi在JqGrid中分配JSon數據
$().ready(function() {
//{"total":1,"page":1,"records":3,"rows":[{"id":"1","cell":["1","Tomato
//Soup","[email protected]","[email protected]","Groceries"]},{"id":"2","cell":["2","Yo-
//yo","[email protected]","[email protected]","Toys"]},{"id":"3","cell":
//["3","Hammer","[email protected]","[email protected]","Hardware"]}]}
//
$.getJSON("api/userwebapi/",
function (data) {
//userDataFromApi = jQuery.parseJSON(data);
userDataFromApi =data;
//alert(userDataFromApi[0].ID);
ConfigureUserGrid(userDataFromApi);
});
});
function ConfigureUserGrid(userDataFromApi) {
var grdUsers = $("#grdUsers");
var lastsel = 0;
$("#grdUsers").jqGrid({
datatype: "json"
, data: userDataFromApi
//, url: "api/userwebapi"
,colNames: ['ID', 'Name', 'User Role', 'Email', 'Address']
,colModel: [
{ name: 'ID', index: 'ID', width: 80, hidden: true }
, { name: 'Name', index: 'Name', width: 150 }
, { name: 'UserRole', index: 'UserRole', width: 150 }
, { name: 'Email', index: 'Email', width: 200, sortable: true }
, { name: 'Address', index: 'Address', width: 200, sortable: true }]
, viewrecords: true
, pager: '#pager1'
, mtype: 'GET'
,rowNum:true
,caption: 'My first grid'
}); //close of jQuery("#grdUsers").jqGrid({
$("#grdUsers").jqGrid('navGrid', '#pager1',
{ add: false, del: false, edit: false, search: false, refresh: false });
}
在我看來,服務器'url'的遠程調用的使用與'loadonce:true'可選的使用'data'參數的使用更好。無論如何,兩種方式都必須工作。我想你應該修改'jsonReader'來對應來自服務器的響應。無論如何,你應該發佈更多的代碼和一些測試數據(來自服務器的'data'值)來描述你的問題。 – Oleg
oleg !!我已添加代碼 – Deepesh