2011-07-04 57 views
0

問題是,我看不到任何網格中的行。不管我多努力,但沒有成功。 FireBug正在顯示數據。可能是Column的問題?JQGrid未顯示數據。嘗試努力沒有成功

爲什麼我看不到數據?

注意:如果我使用數組並將其綁定到網格上,而不是我看到的數組數據。請參閱底部的本地綁定。

我正在使用最新的JQGrid js。我認爲版本是4.1.1。今天下載。

* 傑森響應 ------------------- *

{"total":1,"page":1,"records":2,"rows":[{"id":1,"cell":["1","account number","First Name"]},{"id":2,"cell":["2","account number1","First Name1"]}]} 

* 剃刀頁 ----- ------------------------ *

 <table id="list"></table> 
      <div id="pager"></div> 

     <link href="/Content/custom-theme/jquery-ui-1.8.13.custom.css" rel="stylesheet" type="text/css" /> 
     <link href="/Content/custom-theme/ui.jqgrid.css" rel="stylesheet" type="text/css" /> 

      <script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script> 
      <script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script> 
      <script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script> 
      <script src="/Scripts/jquery-ui-1.8.13.custom.min.js" type="text/javascript"></script> 
      <script src="/Scripts/jqgrid/i18n/grid.locale-en.js" type="text/javascript"></script> 
      <script src="/Scripts/jqgrid/jquery.jqGrid.min.js" type="text/javascript"></script> 
      <script src="/Scripts/jqgrid/sandbox-grid.js" type="text/javascript"></script> 

[HttpGet] 
     public JsonResult GetGrids(string sidx, string sord, int page, int rows) 
     { 
      var query = from e in _form.All() select e; 
      var count = query.Count(); 

      var result = new 
      { 
       total = 1, 
       page = page, 
       records = count, 
       rows = query.Select(x => new { x.Id, x.AccountNumber, x.FirstName }) 
          .ToList() 
          .Select(x => new 
          { 
           id = x.Id, 
           cell = new string[] {x.Id.ToString(),x.AccountNumber,x.FirstName} 
          }).ToArray(), 
      }; 

      return Json(result, JsonRequestBehavior.AllowGet); 

     } 


    $(document).ready(function() { 
     jQuery("#list").jqGrid({ 
      url: '/Home/GetGrids/', 
      mtype: 'GET', 
      dataType: 'json', 
      colNames: ['Id', 'Account Number', 'Lastname'], 
      colModel: [ 
       { name: 'Id', index: 'Id', width: 200 }, 
       { name: 'AccountNumber', index: 'AccountNumber', width: 300 }, 
       { name: 'LastName', index: 'LastName', width: 100 } 
      ], 
      rowNum: 10, 
      rowList: [10, 20, 30], 
      pager: '#pager', 
      sortname: 'Id', 
      viewrecords: true, 
      sortorder: "desc", 
      caption: "Pay Your Bill" 
     }); 
     jQuery("#list").jqGrid('navGrid', '#pager', { edit: false, add: false, del: false }); 
    }); 

本地綁定工作 ---------------------------------

var mydata = [ 
       { Id: "1", name: "test", AccountNumber: "note", LastName: "1sdfd sdfsdf00" }, 
       { Id: "2", name: "test2", AccountNumber: "note2", LastName: "2sdf sdfdf00" } 

      ]; 

data: mydata, 

datatype: "local", 

回答

1

在我看來,主要的錯誤在您使用的代碼是

dataType: 'json' 

,而不是

datatype: 'json' 

因爲dataType是未知的jqGrid的,默認值datatype: 'xml'將被使用。

已更新:我建議您始終實施loadError事件處理程序。請參閱the answer的UPDATED部分,其中包含the VS2008 projectthe VS2010 project的演示,這是您使用的the Phil Haack demo的修改。

+0

謝謝你。我感到很蠢:(工作,我會看到參考帖子) – Pirzada

+0

@pirzada:歡迎您!這是一個標準問題,幾乎每個使用'jQuery.ajax'的人都會犯一次錯誤。 – Oleg