未填充带有web api的jqgrid
我对jqGrid非常陌生。我正在尝试使用asp.NETWebAPI加载简单的jqgrid。 api会发回emailDto的列表。emailDto是具有3个公共属性的普通类 问题是jqgrid没有得到填充。非常感谢您的帮助未填充带有web api的jqgrid,jqgrid,Jqgrid,我对jqGrid非常陌生。我正在尝试使用asp.NETWebAPI加载简单的jqgrid。 api会发回emailDto的列表。emailDto是具有3个公共属性的普通类 问题是jqgrid没有得到填充。非常感谢您的帮助 function dataBindToGrid() { var lastsel; $("#emailgrid").jqGrid({ url: '/api/email/', datatype: "js
function dataBindToGrid() {
var lastsel;
$("#emailgrid").jqGrid({
url: '/api/email/',
datatype: "json",
mytype: 'GET',
ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
colNames: ['Address ID', 'Type', 'Email'],
colModel: [{ name: 'Address_ID', width: 70, primaryKey: true, editable: false, sortable: false, hidden: false, align: 'left' },
{ name: 'Email_Type', width: 70, editable: true, align: 'left', sortable: false },
{ name: 'Email_Address', width: 200, editable: true, align: 'left', sortable: false }
],
onSelectRow: function (id) {
if (id && id !== lastsel) {
var grid = $("#emailgrid");
grid.restoreRow(lastsel);
grid.editRow(id, true);
lastsel = id;
}
},
//This event fires after all the data is loaded into the grid
gridComplete: function () {
//Get ids for all current rows
var dataIds = $('#emailgrid').jqGrid('getDataIDs');
for (var i = 0; i < dataIds.length; i++) {
//Put row in edit state
$("#emailgrid").jqGrid('editRow', dataIds[i], false);
}
},
rowNum: 3,
viewrecords: true,
caption: "Email Addresses"
});
}
函数dataBindToGrid(){
var lastsel;
$(“#emailgrid”).jqGrid({
url:“/api/email/”,
数据类型:“json”,
mytype:'获取',
ajaxGridOptions:{contentType:'application/json;charset=utf-8'},
colNames:['Address ID','Type','Email'],
colModel:[{name:'Address_ID',width:70,primaryKey:true,editable:false,sortable:false,hidden:false,align:'left'},
{name:'Email_Type',宽度:70,可编辑:true,align:'left',sortable:false},
{name:'Email_Address',宽度:200,可编辑:true,align:'left',sortable:false}
],
OnSetrow:功能(id){
if(id&&id!==lastsel){
var grid=$(“#emailgrid”);
grid.restoreRow(lastsel);
grid.editRow(id,true);
lastsel=id;
}
},
//此事件在所有数据加载到网格后激发
gridComplete:函数(){
//获取所有当前行的ID
var dataid=$('#emailgrid').jqGrid('getdataid');
对于(var i=0;i{
"total": "xxx",
"page": "yyy",
"records": "zzz",
"rows" : [
{"id" :"1", "cell" :["cell11", "cell12", "cell13"]},
{"id" :"2", "cell":["cell21", "cell22", "cell23"]},
...
]
}
返回的数据必须与此匹配,否则将无法工作。这是默认的json结构(如果需要,可以更改)。根据您使用的浏览器,您应该能够看到ajax请求和响应,以及网格构建时发送和返回的数据(Firefox使用firebug,即使用开发者工具栏)
根据解决
刚刚添加到下面的jqGrid中,它就可以工作了
jsonReader: {
repeatitems: false,
page: function () { return 1; },
root: function (obj) { return obj; },
records: function (obj) { return obj.length; }
},
您是否能够在接收请求的url/api/email/处发布代码。我确实检查过了,也确实发了。谢谢你的回复。实际上我不需要记录的总数、页数和编号。我只允许最多3个电子邮件地址。