2011-11-25 28 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的指针。欣赏它 谢谢