JqGrid无法通过Json响应填充自身
因此,我有一个javascript函数,可以在页面加载时运行,如下所示:JqGrid无法通过Json响应填充自身,jqgrid,Jqgrid,因此,我有一个javascript函数,可以在页面加载时运行,如下所示: function createGrid() { var myGrid = jQuery("#responseMessages"), reportBtn = "<input style='height:22px;width:100px;' type='button' value='Report' />",
function createGrid()
{
var myGrid =
jQuery("#responseMessages"),
reportBtn = "<input style='height:22px;width:100px;' type='button' value='Report' />",
getColumnIndexByName = function(grid,columnName) {
var cm = grid.jqGrid('getGridParam','colModel');
for (var i=0,l=cm.length; i<l; i++) {
if (cm[i].name===columnName) {
return i; // return the index
}
}
return -1;
};
myGrid.jqGrid({
url: "<%= Url.Action("GetMessages", "Home") %>",
datatype: 'json',
myType: 'GET',
height: 'auto',
colModel: [
{ name:'distance', index:'distance', label:'Distance', width:100 },
{ name:'age', index:'age', label:'Age', width:75 },
{ name:'message', index:'message', label:'Message', width:500 },
{ name:'messageId', index:'messageId', key:true, hidden:true },
{ name:'report', index:'report', label: 'Report', width:100,
formatter:function() { return reportBtn; } }
],
loadComplete: function() {
var i=getColumnIndexByName(myGrid,'report');
// nth-child need 1-based index so we use (i+1) below
$("tbody > tr.jqgrow > td:nth-child("+(i+1)+") > input",myGrid[0]).click(function(e) {
var tr=$(e.target,myGrid[0].rows).closest("tr.jqgrow");
var x=window.confirm("Are you sure you want to report this message?")
if (x)
{
reportMessage(tr[0].id);
}
e.preventDefault();
});
},
rowNum:25,
viewrecords:true,
rowList:[10,25,50],
pager: '#pager',
caption: "What's going on in your area!"
});
}
所以网格去重新获得服务器方法,耶!但这一次,服务器发回的响应与firebug类似:
{"ContentEncoding":null,"ContentType":null,"Data":{"page":1,"records":2,"rows":[{"id":3,"cell":["\u003c 1 mile","25 hour(s)","sdfgsdfgsdfg","3"]},{"id":2,"cell":["\u003c 1 mile","25 hour(s)","adfg","2"]}],"total":1},"JsonRequestBehavior":1}
但是,网格没有填充,仍然表示没有记录,而应该有3条记录。您使用的不是标准格式的JSON数据,因此您应该在jqGrid中包含相应的参数,该参数描述jqGrid如何从JSON输入中获取数据:
jsonReader: {
page: "Data.page",
total: "Data.total",
records: "Data.records",
root: "Data.rows"
}
更改后将读取数据的读取方式。我不确定您是否知道可以读取的规则:当您看到问题的新答案时,请单击答案左侧的向上箭头,向上投票,选出有用的答案。在许多统计数据中,未经表决而被接受的答案将不予计算(不包括在“总分”中)。人们不认为答案有帮助。你刚刚结束了这个问题。你可以阅读一个人对“总分”的理解。
jsonReader: {
page: "Data.page",
total: "Data.total",
records: "Data.records",
root: "Data.rows"
}