Мне нужно использовать сетку jQuery для загрузки данных в mvc3.Но я не могу избавиться от этой ошибки.
![enter image description here](https://i.stack.imgur.com/Z1QDz.png)
Внутри Layout.cshtml
<link type="text/css" href="@Url.Content("~/Content/jquery-ui-titoms.css")" rel="stylesheet" />
<link type="text/css" href="@Url.Content("~/Content/ui.jqgrid.css")" rel="stylesheet" />
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-ui-1.8.16.custom.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-ui-timepicker-addon.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-ui-sliderAccess.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/grid.locale-en.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.jqGrid.min.js")"></script>
Внутри Index.cshtml
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery("#list").jqGrid({
url: '@Url.Content("~/Device/LoadDevice")',
datatype: 'json',
mtype: 'POST',
colNames: ['LoginID', 'Name', 'Model'],
colModel: [
{ name: 'LoginID', index: 'LoginID', width: 40, align: 'left' },
{ name: 'Name', index: 'Name', width: 40, align: 'Name' },
{ name: 'Model', index: 'Model', width: 400, align: 'Model'}],
pager: jQuery('#pager'),
rowNum: 10,
rowList: [5, 10, 20, 50],
sortname: 'Name',
sortorder: "desc",
viewrecords: true,
imgpath: '',
caption: 'Device list'
});
});
</script>
<table id="list" class="scroll" cellpadding="0" cellspacing="0"></table>
<div id="pager" class="scroll" style="text-align:center;"></div>
Внутри DeviceController
public JsonResult LoadDevice(string sidx, string sord, int page, int rows)
{
using (Dbase titoms = new Dbase())
{
var context = titoms;
int pageIndex = Convert.ToInt32(page) - 1;
int pageSize = rows;
int totalRecords = context.devices.Count();
int totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize);
var devices = context.devices.OrderBy(sidx + " " + sord).Skip(pageIndex * pageSize).Take(pageSize);
var sorted = (from item in devices
select new
{
i = item.DeviceID,
cell = new string[] { item.LoginID, item.Name, item.Model }
}).ToArray();
var jsonData = new
{
total = totalPages,
page,
records = totalRecords,
rows = sorted
};
return Json(jsonData);
}
}
Вот предварительный просмотр страницы:
![enter image description here](https://i.stack.imgur.com/DJ9sc.png)
LoginID
, Name
& Model
как string
в типе, в то время как DeviceID равен long
type.
Я использую платформу сущностей.
Теперь я не могу понять, почему такая ошибка существует, надеюсь, кто-то может помочь .. Большое спасибо.
РЕДАКТИРОВАТЬ
Спасибо НиколасуВаш ответ сработал, но я должен изменить код.Это должно работать сейчас:
var devices = context.devices.OrderBy("it." + sidx + " " + sord).Skip(pageIndex * pageSize).Take(pageSize);
var sorted = (from item in devices
select new
{
i = item.DeviceID,
cell = new List<string> { item.LoginID, item.Name, item.Model }
}).ToArray();