[英]jqGrid - loading values from JSON
我有一个jqGrid
使用local
数据类型jqGrid
正常工作,但现在我希望通过json
加载值,但无法更改它。
这是我的jqGrid
代码
jQuery("#grid").jqGrid({
datatype: "json",
url: "/controller/getItems?id=2",
width: 1405,
colNames: ['id', 'surname'],
colModel: [
{ name: 'id', index: 'id', editable: false, hidden: false, hidedlg: true },
{ name: 'surname', index: 'surname', editable: true }
],
onSelectRow: function (id, status, e) {
...
},
editurl: url,
...
因此,成功触发了获取JSON的方法。
[HttpGet]
public ActionResult getItems(string id)
{
List<model> items = method.getItems(id);
string jsonText = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(items);
return Json(jsonText, JsonRequestBehavior.AllowGet);
}
JSON
的列名称与colModel
名称匹配
返回json
示例-上面的jsonText
对象包含的内容
[{"id":434,"surname":"Woods"},
{"id":435,"surname":"Adams"}]
我做错了什么或想念什么吗?
谢谢
我想在使用System.Web.Script.Serialization.JavaScriptSerializer().Serialize
出现错误。 您只需要返回Json(items, JsonRequestBehavior.AllowGet);
。 另外,您可以从colModel
删除列id
。 仍将读取id
值并将其分配为称为rowid的行的id
属性值(网格的<tr>
元素的id
)。 您应该向网格中添加loadonce: true
选项,因为您没有在服务器端实现数据分页,而是添加了gridview: true
(如果尚未使用)以提高性能,并自动autoencode: true
以将输入数据解释为文本而不是HTML片段。
更新 :如果使用旧版本的jqGrid,则必须包含jsonReader
参数,该参数对应于输入数据的格式:
jsonReader: {
repeatitems: false,
root: function (obj) { return obj; }
}
仍然应该另外使用loadonce: true
选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.