2013-07-11 88 views
1

通過ajax調用從服務器中獲取的數據,但問題是響應 應該在jqgrid中加載,但不加載。在var dataAjax = jData.responseText; dataAjax從服務器接收到數據。如何通過jqgrid中的ajax調用json數據加載

這是什麼錯誤。請幫忙

$(document).ready(function(){ 

    var resData = ""; 
    $(".btnLoad").click((function(){ 
     resData = $.ajax({ 
       type : "POST", 
       url: "/AccountUI/DataFlow/AccountDetails.html", 
       dataType: "json", 
       success: functioin(jData){ 
        var dataAjax = jData.responseText;   
        return dataAjax; 
       } 

      }); 
    }); 

    var gridData = new Array(); 
    gridData = resData;  
    jQuery("#ajgrid").jqGrid({ 
      datatype: "json", 
      height: 250, 
      colNames:['AccID','AccName', 'AccBranch'], 
      colModel:[ {name:'AccID',index:'AccID', width:60, sorttype:"int"}, 
       {name:'AccName',index:'AccName', width:90}, 
       {name:'AccBranch',index:'AccBranch', width:100}    
      ], 
      multiselect : true, 
      caption : "Account Grid" 
    }); 


    for(var i=0;i<=gridData.length;i++) 
     jQuery("#ajgrid").jqGrid('addRowData',i+1,gridData[i]); 

}); 
+0

在ajax回調中,您只需將數據返回到任何地方。 – Tommi

回答

1

有什麼誤區datatype: "json"的意思。它與url選項一起使用。 jqGrid爲您提供Ajax請求,並從網格中的服務器數據返回填充。如果您沒有實施服務器端分頁您應該另外添加loadonce: true選項到網格。

所以我希望你所需要的是:1)刪除手動$.ajax調用; 2)刪除使用addRowData填充網格的循環; 3)將以下選項添加到的jqGrid:

url: "/AccountUI/DataFlow/AccountDetails.html", 
mtype: "POST", 
loadonce: true, 
gridview: true, 
autoencode: true 

我建議你還更換height: 250height: "auto"。取決於返回數據的確切格式,您可能需要添加jsonReader以幫助jqGrid正確解釋服務器響應的屬性。可能是jqGrid可以自動檢測返回數據的格式。