Javascript 在jqGrid中使用JSON时,客户端分页不起作用
我是jQuery和jqGrid的新用户。我正在尝试使用客户端分页实现jqGrid。这在我这边不起作用。我正在使用.NET4.0Web服务获取json响应 这是我的web服务代码Javascript 在jqGrid中使用JSON时,客户端分页不起作用,javascript,jquery,asp.net,json,jqgrid,Javascript,Jquery,Asp.net,Json,Jqgrid,我是jQuery和jqGrid的新用户。我正在尝试使用客户端分页实现jqGrid。这在我这边不起作用。我正在使用.NET4.0Web服务获取json响应 这是我的web服务代码 public string GetMessage(string FDate,string TDate,string Status) { databaseDataContext dc = new databaseDataContext(); var v = (from v1 in dc.WBS_MESSAGEs whe
public string GetMessage(string FDate,string TDate,string Status)
{
databaseDataContext dc = new databaseDataContext();
var v = (from v1 in dc.WBS_MESSAGEs
where v1.TransStatus == Status && v1.CreatedDate >= fromDate
&& v1.CreatedDate <= toDate
select new
{
v1.MessageID,
v1.Task,
v1.Remark,
v1.CreatedDate,
Object = (v1.ObjectID == "2" ? "Business Partner" :
v1.ObjectID == "30" ? "Journals" : "Unknown")
});
if (v.Count() > 0)
{
System.Web.Script.Serialization.JavaScriptSerializer js = new
System.Web.Script.Serialization.JavaScriptSerializer();
return js.Serialize(v.ToList());
}
else
{
return null;
}
}
我被困在这里了
您的帮助将非常可观。我希望您的jQgrid定义没有问题。我已经用本地数据尝试了你的代码。它很好用。你需要检查两件事。首先,不管ajax函数是否从web服务返回数据。其次,如果返回,请检查它是否提供了正确的数据类型(在您的示例中是
json
)
我删除了几行代码,简化了代码
$(document).ready(function (event) {
var mydata = [
{ MessageID: '1', Object: 'sample text', Task: 'Task 1', CreatedDate: '20140226',Remark: 'good'},
{ MessageID: '2', Object: 'sample 1', Task: 'Task 1', CreatedDate: '20140226',Remark: 'good'},
{ MessageID: '3', Object: 'sample 2', Task: 'Task 2', CreatedDate: '20140226',Remark: 'good'},
{ MessageID: '4', Object: 'sample 3', Task: 'Task 3', CreatedDate: '20140226',Remark: 'good'},
{ MessageID: '5', Object: 'sample 4', Task: 'Task 4', CreatedDate: '20140226',Remark: 'good'},
{ MessageID: '6', Object: 'sample 5', Task: 'Task 5', CreatedDate: '20140226',Remark: 'good'},
{ MessageID: '7', Object: 'sample 6', Task: 'Task 6', CreatedDate: '20140226',Remark: 'good'},
{ MessageID: '8', Object: 'sample 6', Task: 'Task 7', CreatedDate: '20140226',Remark: 'good'},
{ MessageID: '9', Object: 'sample 4', Task: 'Task 8', CreatedDate: '20140226',Remark: 'good'},
{ MessageID: '10',Object: 'sample 6', Task: 'Task 9', CreatedDate: '20140226',Remark: 'good'},
{ MessageID: '11',Object: 'sample 7', Task: 'Task 1', CreatedDate: '20140226',Remark: 'good'},
{ MessageID: '12',Object: 'sample 7', Task: 'Task 1', CreatedDate: '20140226',Remark: 'good'}
];
jQuery("#listArray").jqGrid({
datatype: 'local',
data: mydata,
colNames: ['Message ID', 'Object', 'Task', "CreatedDate", 'Remark'],
ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
colModel: [
{ name: 'MessageID', index: 'MessageID asc', sortable: true, align: "center", width: 55 },
{ name: 'Object', index: 'Object', width: 120, jsonmap: "Object" },
{ name: 'Task', index: 'Task', width: 80, jsonmap: "Task", align: "center" },
{ name: 'CreatedDate', index: 'CreatedDate', jsonmap: "CreatedDate", align: "center", formatter: 'date', formatoptions: { srcformat: 'yyyyMMdd', newformat: 'd-M-y @ H:i:s' }, width: 140 },
{ name: 'Remark', index: 'Remark', width: 300, jsonmap: "Remark" }
],
loadtext: "Loading...",
rowNum:10,
rowList: [10,20,50],
pager: '#jqPager',
viewrecords: true,
caption: "Success",
height: 'auto',
refreshtext:'Refresh',
emptyrecords: "No records to view"
});
jQuery("#listArray").jqGrid('navGrid', '#jqPager', { edit: false, add: false, del: false });
各自的Html部分
<table id="listArray">
<tr>
<td />
</tr>
</table>
<div id="jqPager"></div>
您可以检查相应的
希望这有助于您确定您的问题。您的网格似乎没有填充数据。是吗?你确定,只是分页不起作用吗?嗨,维诺,谢谢你的回复。。。我在部分中尝试了您的建议,您的代码正在运行。我将我的代码与你的代码进行比较,除了响应之外,它没有任何区别。所有数据都是一笔完成的。。。下面是我的json响应。。。我看到createdate响应中的差异。[{“MessageID”:14,“任务”:“U”,“备注”:“SAP Business One中更新的客户”,“createdate”:“\/Date(1393476527177)\/”,“Object”:“Business Partner”}]。。。这是第一张唱片。。它有大约6条记录,我将分页设置为2行,因此您需要检查响应数据并根据该数据修改列定义。我还观察到,这个数字(创建日期)并不表示任何类型的日期。这是什么样的日期格式?。在你们的数据中你们提到了正确的日期,但在网格中它显示了一些无效的日期。(01-Jan-70@00:00:00良好)
<table id="listArray">
<tr>
<td />
</tr>
</table>
<div id="jqPager"></div>