gpt4 book ai didi

c# - 解析 jQuery 网格中的上下文变量和模式时出错

转载 作者:太空宇宙 更新时间:2023-11-03 11:26:50 25 4
gpt4 key购买 nike

我必须使用 jQuery 网格在 mvc3 中加载数据。但我无法摆脱这个错误。

enter image description here

里面 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

LoginID, Name & Model 类型为 string 而 DeviceID 是 long类型。
我正在使用 Entity Framework 。

现在我找不到为什么会出现这样的错误,希望有人能提供帮助。非常感谢。

编辑

感谢 Nicholas,您的回答有效,但我必须更改一些代码。这现在应该可以工作了:

        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();

最佳答案

问题是由于在运行时按条件指定订单造成的。

您需要更改它以遵循 convention

ObjectQuery<Product> productQuery2 =
productQuery1.OrderBy("it.ProductID");

所以你的查询应该是这样的

var devices = context.devices.OrderBy("it." + sidx)

查看其他 question

关于c# - 解析 jQuery 网格中的上下文变量和模式时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9062151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com