我以为我已经对这个东西进行了排序,但是我尝试在我的另一个应用程序中使用jqGrid并且它不想工作。它甚至不会去提到的URL。它甚至不会显示空记录字符串,只是一个空格 这就是我在视图中的内容
$("#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)
您的代码中存在一些错误:
jsonReader: { repeatitems: false }
的格式rows
,{id, cell}
属性为cell
,那么您应该从jqGrid定义中删除jquery-ui-1.8.15.min.js
参数字符串数组。jquery-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
。其他一些事情不是错误,只是建议:
imgpath: '/Content/images'
。您可能使用了一些复古示例作为模板。包含参数blaBla: 'HaHa'
与包含imgpath: '/Content/images'
的操作相同:它不执行任何操作。因此,您应删除pager: $("#pager")
。pager: "#pager"
替换为$("#pager")
。表达式id="page"
表示在具有pager
的页面上选择DOM元素,并为DOM元素创建jQuery包装器。 jqGrid需要知道只有寻呼机的ID 。因此,如果id
参数的值不是字符串和jQuery元素而是jqGrid,则只从元素中获取pager
属性,并将'#' + id
参数的值修改为字符串{{1} }。最好直接以`pager:“#pager”形式使用pager
参数。答案 1 :(得分:0)
感谢您的投入。事实证明我犯了一个错误。我调用的是type而不是mtype,而jqGrid对我指定的Url什么都没做。一旦我纠正它,它现在工作正常。
感谢有关imgpath和pager btw的指示。欣赏它 谢谢