2011-11-25 23 views
0

我以爲我會得到這個東西排序,但我嘗試在我的另一個應用程序中使用jqGrid,它不想工作。它甚至不會去提到的URL。它甚至不會顯示emptyrecords字符串,只是一個空的網格。
這是我在查看jqGrid再次與ASP.NET MVC3?

$("#list").jqGrid({ 
      url: '/Customers/MyAccount/GetEnhancementRequests', 
      datatype: 'json', 
      type: 'POST', 
      colNames: ['ID', 'Requested By', 'Requested Date', 'Details', 'Progress'], 
      colModel: [ 
      { name: 'Id', index: 'ID', key: true, width: 55 }, 
      { name: 'CustomerName', index: 'CustomerName', width: 50 }, 
      { name: 'requestDate', index: 'requestDate', width: 50 }, 
      { name: 'details', index: 'details', width: 50 }, 
      { name: 'progress', index: 'progress', width: 50 } 
      ], 
      pager: $("#pager"), 
      rowNum: 2, 
      rowList: [2, 10, 50, 100, 200], 
      sortname: 'ID', 
      viewrecords: true, 
      sortorder: 'desc', 
      caption: 'Enhancement Requests', 
      imgpath: '/Content/images', 
      width: 1000, 
      height: 500, 
      emptyrecords: 'No enhancements have been submitted', 
      jsonReader: { repeatitems: false } 
     }); 


     $("#list").jqGrid('navGrid', '#pager', 
     { edit: false, add: false, del: false }, 
     {}, 
     {}, 
     {}, 
     { multipleSearch: true, multipleGroup: true } 
     ); 

而且我已經改變了我的控制器行動,只是這個

[HttpPost] 
public JsonResult GetEnhancementRequests(string sidx, string sord, int page, int rows, bool _search, string filters) 
     { 
      var jsonData = new 
      { 
       total = 1, 
       page = page, 
       records = 1, 
       rows = (
        new { 
         id = 1, 
         cell = new string[]{ 
          "1", "RequestedBy", DateTime.Now.ToShortDateString(), "Lots of details", "and even some progress"}       
        }) 
      }; 
      return Json(jsonData); 
     } 

我有在控制器動作斷點,但它不是」即使進入方法。任何見解?

編輯:忘了補充,我有以下參考腳本。正如你所看到的,我已經得到了所有REQ文件

<link href="../../../../Scripts/css/custom-theme/jquery-ui-1.8.16.custom.css" rel="stylesheet" type="text/css" /> 
<link href="../../../../Scripts/css/ui.jqgrid.css" rel="stylesheet" type="text/css" /> 
<link href="../../../../Scripts/ui.multiselect.css" rel="stylesheet" type="text/css" /> 

<script src="../../../../Scripts/jquery-1.6.4.min.js" type="text/javascript"></script> 
<script src="../../../../Scripts/jquery-ui-1.8.15.min.js" type="text/javascript"></script> 
<script src="../../../../Scripts/jquery-ui-1.8.16.custom.min.js" type="text/javascript"></script> 
<script src="../../../../Scripts/grid.locale-en.js" type="text/javascript"></script> 
<script src="../../../../Scripts/ui.multiselect.js" type="text/javascript"></script> 
<script src="../../../../Scripts/jquery.jqGrid.min.js" type="text/javascript"></script> 
<script src="../../../../Scripts/jquery.tablednd.js" type="text/javascript"></script> 
+0

你可以請你也發佈網格請求的網址示例輸出? –

回答

1

有一些錯誤代碼:

  • 你應該如果你使用的rows格式從jqGrid的定義中刪除jsonReader: { repeatitems: false }參數具有{id, cell}屬性的項目,其中cell是一個字符串數組。
  • 您應該只包括每個JavaScript文件一次。目前您包括jquery-ui-1.8.15.min.jsjquery-ui-1.8.16.custom.min.js。你應該刪除jquery-ui-1.8.15.min.js。以相同的方式,文件jquery.tablednd.js已經以最小化的形式包含在jquery.jqGrid.min.js中。你應該刪除jquery.tablednd.js

其他有些事情不是錯誤,而只是推薦:

  • 參數imgpath不是因爲jqGrid的多年存在。你可能使用了一些復古的例子作爲模板。包括參數imgpath: '/Content/images'的做法與包括blaBla: 'HaHa'相同:它什麼都不做。所以你應該刪除imgpath: '/Content/images'
  • 您應該取代pager: $("#pager")pager: "#pager"。表達式$("#pager")表示在具有id="page"的頁面上選擇DOM元素併爲DOM元素創建jQuery包裝器。 jqGrid需要知道唯一的尋呼機號碼。因此,如果參數pager的值不是字符串和jQuery元素,而是jqGrid只是從元素中獲取id屬性並將pager參數的值修改爲字符串'#' + id。最好直接以「pager:」#pager「的形式使用pager參數。
  • 我建議你看看the answer的UPDATED部分。它包含將錯誤消息轉發給jqGrid的代碼,修復了在ASP.NET MVC 2或3中使用jqGrid的情況下的一些CSS問題,並演示瞭如何在實體框架中使用數據分頁,排序和過濾。所以它可能對你很有趣。您可以從答案的「UPDATED 2」(最後)鏈接中下載演示項目。
0

感謝您的意見。原來我錯了。我正在調用type而不是mtype,並且jqGrid對我指定的Url沒有做任何事情。一旦我糾正它,它現在工作正常。

感謝有關imgpath和尋呼機btw的指針。欣賞它 謝謝