2011-09-14 17 views
0

我想在asp.net中實現jqGrid。asp.net中的JqGrid沒有綁定

這是我的代碼。

<script type="text/javascript" src="../js/i18n/grid.locale-en.js"></script> 
    <script type="text/javascript" src="../js/jquery.jqGrid.min.js"></script> 
    <script type="text/javascript" src="../js/jquery.jqGrid.src.js"></script> 
    <script src="../js/plugins/grid.postext.js" type="text/javascript"></script> 


    <script type="text/javascript"> 
    $(document).ready(function(){ 
    jQuery("#tdList").jqGrid({ 
    type: "POST", 
     datatype: function() { 
      $.ajax 
      ({ 

       url: "WebService1.asmx/GetDataFromDB", 
       data: "{}", 
       datatype: 'json', 
       contentType: "application/json; charset=utf-8", 


      }); 
     }, 

     height: "100%", 
     width: "100%", 
     forceFit: true, 
     colNames: ['EmpID', 'Name', 'MGR'], 
     colModel: [ 
        { name: 'EmpID', index: 'EmpID', key: true, hidden: true }, 
        { name: 'Name', index: 'Name', width: 100 }, 
        { name: 'MGR', index: 'MGR', width: 100 } 
        ], 
     rowNum: 10, 
     rowList: [5, 10, 15], 
     pager: $('#pager'), 
     sortname: 'EmpID', 
     viewrecords: true, 
     sortorder: "desc", 
     caption: "Customer List" 



    }).navGrid('#pager', { del: false, add: false, edit: false }); 
    }); 

和後面的代碼是

namespace JqGrid_App{  
[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[ToolboxItem(false)] 

[System.Web.Script.Services.ScriptService] 
public class WebService1 : System.Web.Services.WebService 
{ 

    [WebMethod] 
    public string HelloWorld() 
    { 
     return "Hello World"; 
    } 

    [WebMethod(EnableSession = false)] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)] 
    public string GetDataFromDB() 
    { 
     _Default OGetData = new _Default(); 
     return OGetData.GetDataFromDB(); 
    } 
}} 

的JSONData返回的格式

{ 
"total":1, 
"page":1, 
"records":1, 
"rows":[ 
    {"id":"6","cell":["Robbie","2"]} 
     ] 
} 

但電網不具約束力的數據。

請幫忙。我在這裏做錯了什麼。我正試圖解決這個問題,最近2天。

最好的問候, MLG

回答

1

你在你的代碼做了太多的錯誤:

  • 您包括來自文件都query.jqGrid.min.jsquery.jqGrid.src.js,而不是隻使用一個
  • 您的GetDataFromDB方法返回結果爲string這是錯誤的。您應該返回具有屬性totalpagerows等的對象。目前您進行手動JSON序列化,結果字符串將被序列化一次
  • 您使用datatype作爲函數,這是多年前需要之前被引入的新參數描述here例如。您當前實現的datatype函數是錯誤的,因爲它使異步 Ajax調用並返回,然後它從服務器收到任何結果。服務器結果將被丟棄。從服務器返回
  • 你的JSON數據包含字符串網格(["Robbie","2"])的行,但你定義
  • ...

我可以繼續...

所以我建議你看看其他代碼示例,它使用jqGrid使用ASMX web服務。例如,您可以下載一個工作演示,例如Here。在the answer你會發現另一個演示。

+0

非常感謝Oleg爲了指出錯誤並提供鏈接。我糾正了錯誤,現在它正在工作。 Cheers,Mlg – mlg

+0

@mlg:不客氣! – Oleg