我试图显示一个jqGrid使用jquery 1.6.2.mins,和最新的jqGrid - jqGrid 4.5.4。jqGrid JSON映射不读取INDEX值
我的项目设置为: ASP.NET - 使用MVC2 Visual Studio 2010中 框架是.NET 4.0
问题:在我的C#类我从我将数据库中添加的所有行在一个点或另一个使用。我只想在最初显示两行(NAME
,DESCRIPTION
)。
jqGrid显示两行,但它显示我的id行在第一个应该显示什么说明列显示。所以基本上发生了什么事情,行正在向右移动,而我的列映射不起作用。 NAME = 'NAME_TXT'
,但由于某种原因,我在显示屏上获得的是NAME = ID
;
colNames: ['NAME', 'DESCRIPTION'],
colModel: [
{ name: 'NAME', index: 'NAME_TXT', align: 'left' },
{ name: 'DESCRIPTION', index: 'DESCRIPTION_TXT', align: 'left'}
],
我也想知道我怎么能显示JSON数据正从C#代码回来了,我怎么在console.log("JSON DATATYPE: " + $datatype)
显示对象,类似的东西应有尽有。
谢谢。
JavaScript代码:
$(function() {
$grid = $("#grid");
$grid.jqGrid({
type: 'GET',
contentType: "application/json; charset=utf-8",
url: '/csc/devapp1/Home/LinqGridData/',
datatype: 'json',
colNames: ['NAME', 'DESCRIPTION'],
colModel: [
{ name: 'NAME', index: 'NAME_TXT', align: 'left' },
{ name: 'DESCRIPTION', index: 'DESCRIPTION_TXT', align: 'left'}],
sortname: 'NAME_TXT',
sortorder: "desc",
repeatitems: false,
viewrecords: true,
height: '500px',
autowidth: true});
});
C#代码:
我以前试过public ActionResult LinqGridData(string sidx, string sord, int page, int rows)
{
var context = new CSCEntities();
var jsonData = new
{
total = 1,
page = page,
records = context.tbl_Quickfix_Toolbar.Count(),
rows = context.tbl_Quickfix_Toolbar.AsEnumerable().Select(n =>
new { n.QUICKFIX_ID,
cell = new string[] {
n.QUICKFIX_ID.ToString(),
n.NAME_TXT.ToString(),
n.DESCRIPTION_TXT.ToString(),
n.INSTRUCTIONS_TXT.ToString(),
n.TYPE_TXT.ToString(),
n.FIXLINK_TXT.ToString()}
}).ToArray()
};
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
其他C#代码,没有工作:
public ActionResult GridData(string sidx, string sord, int page, int rows)
{
CSCEntities entities = new CSCEntities();
int pageIndex = Convert.ToInt32(page) - 1;
int pageSize = rows;
int totalRecords = entities.tbl_Quickfix_Toolbar.Count();
int totalPages = (int)Math.Ceiling((float)totalRecords/(float)pageSize);
var jsonData = new {
total = totalPages,
page = page,
records = totalRecords,
rows = (
from entity in entities.tbl_Quickfix_Toolbar
select new {
id = entity.QUICKFIX_ID,
cell = new string[] {
entity.NAME_TXT.ToString(),
entity.DESCRIPTION_TXT.ToString(),
entity.QUICKFIX_ID.ToString(),
entity.INSTRUCTIONS_TXT.ToString() }
}).ToArray()
};
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
奥列格,并非你所建议的所有变化都起作用。所以我试图做的是: 1.我需要在表格中显示两列,表格只有 总共有大约20行。因此,一次显示所有内容 从来都不是问题。 2.我需要使用 显示的附加列中的信息作为工具提示或对话框。 所以我尝试删除我的服务器端代码中的AsEnumerable()函数调用,它打破了我的网格。我试着将它放在select语句后面,正如你推荐的那样,它也打破了我的网格。你的一些建议很有帮助。谢谢。 – JEuvin
我还添加了之前在AsEnumerable()服务器端代码之前使用的服务器端代码。这不起作用,我不知道为什么。我也尝试将数据类型更改为本地,并打破了我的网格。 – JEuvin