gpt4 book ai didi

json - jqgrid 未定义整数?寻呼机未加载

转载 作者:行者123 更新时间:2023-12-03 22:51:37 25 4
gpt4 key购买 nike

IM 在 mvc4 上使用 jqgrids,我需要获取一个简单的列表并使用 Ajax 显示它。

当我加载页面然后网格开始 Ajax 调用时,我在网格上只有 2 列,user_id 和 name。

加载 Json 后,我在谷歌浏览器上收到下一个错误:

未捕获的排版机:无法读取未定义的属性“整数”

在 Firefox 中, Firebug :

类型错误:b.jgrid.formatter 未定义

在 jquery.jqGrid.src.js:122

并且网格显示一个“未定义”的消息,而且当前的寻呼机控件没有加载,但数据是

 <table id="GridUsuarios"></table>
<div id="PagerUsuarios"></div>


<script type="text/javascript">
$(document).ready(function() {
jQuery("#GridUsuarios").jqGrid({
url: '@Url.Action("UsuariosGridData","Usuarios")',
datatype: "json",
myType: 'GET',
contentType: "application/json; charset-utf-8",
colNames: ['Usuario', 'Nombre'],
colModel: [
{ name: 'user_id', index: 'user_id', width: 90},
{ name: 'nombre', index: 'nombre', width: 200}
],
pager: '#PagerUsuarios',
rowNum: 10,
rowList: [10, 20, 30],
viewrecords: true,
height: 'auto',
sortname: 'nombre',
sortorder: 'desc',
caption: "Usuarios",
jsonReader: {
root: "rows",
total: "total",
page: "page",
records: "records",
repeatitems: false,
id: "user_id"
},
});
});
</script>

和我的 Controller :
    public JsonResult UsuariosGridData(string sidx = "" , string sord = "", int page = 1, int rows = 10)
{
var resultado = db_hms.Users//.OrderByDescending(ur => ur.id_user)
.Join(db_hms.v_natural_person_short, ur => ur.id_employee, np => np.id_natural_person, (ur, np) => new { Users = ur, Natural_Person = np })//cambiar el idUser por idEmployee la relacion es alrevez XD
.Select(s => new { user_id = s.Users.id_user, nombre = s.Natural_Person.name_full })
.ToList();



int vpage = page;
int vrows = rows;
int counter = (int)Math.Ceiling((float)resultado.Count() / (float)vrows);
switch (sidx)
{
case "nombre":
{
if(sord == "desc")
{
resultado = resultado.OrderByDescending(s => s.nombre).Skip(vrows * vpage).Take(vrows).ToList();
}
else
{
resultado = resultado.OrderBy(s => s.nombre).Skip(vrows * vpage).Take(vrows).ToList(); ;
}
break;
}
case "user_id":
{
if(sord == "desc")
{
resultado = resultado.OrderByDescending(s => s.user_id).Skip(vrows * vpage).Take(vrows).ToList();
}
else
{
resultado = resultado.OrderByDescending(s => s.user_id).Skip(vrows * vpage).Take(vrows).ToList();
}
break;
}
}
var retornar = new
{
total = counter,
page = vpage,
records = vrows,
rows = resultado
};

return Json(retornar, JsonRequestBehavior.AllowGet);

}

和一个小的 json 示例:
{"total":101,"page":1,"records":303,
"rows":[{"user_id":"titito","nombre":"EL bonito, tito "},
{"user_id":"noro","nombre":"ElMoro, Noro "},
{"user_id":"maka","nombre":"Martinez, Macanencio "}]}

最佳答案

如果没有包含所需的语言文件 grid.locale-XX.js,通常会收到错误消息(例如 grid.locale-en.js )之前 jquery.jqGrid.min.jsjquery.jqGrid.src.js .参见the documentation中jqGrid的使用示例.

此外,我建议您添加 gridview: trueautoencode: true jqGrid 的选项,删除不存在的 myType: 'GET' (有 mtype 选项,如果 "GET" 为默认值),减少 jsonReaderjsonReader: {repeatitems: false, id: "user_id"} , 删除所有 index来自 colModel 的属性(因为您使用的值与 name 属性的值相同)并添加 key: true'user_id' 的定义柱子。

因为您没有实现数据的服务器端分页,我建议您另外添加 loadonce: true选项。它允许您返回 所有数据立即来自 UsuariosGridData jqGrid 将实现客户端排序、分页或可选的数据过滤/搜索。

关于json - jqgrid 未定义整数?寻呼机未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16717794/

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