我正在尝试在asp.net中实现jqGrid。
这是我的代码。
<script type="text/javascript" src="../js/i18n/grid.locale-en.js"></script>
<script type="text/javascript" src="../js/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="../js/jquery.jqGrid.src.js"></script>
<script src="../js/plugins/grid.postext.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
jQuery("#tdList").jqGrid({
type: "POST",
datatype: function() {
$.ajax
({
url: "WebService1.asmx/GetDataFromDB",
data: "{}",
datatype: 'json',
contentType: "application/json; charset=utf-8",
});
},
height: "100%",
width: "100%",
forceFit: true,
colNames: ['EmpID', 'Name', 'MGR'],
colModel: [
{ name: 'EmpID', index: 'EmpID', key: true, hidden: true },
{ name: 'Name', index: 'Name', width: 100 },
{ name: 'MGR', index: 'MGR', width: 100 }
],
rowNum: 10,
rowList: [5, 10, 15],
pager: $('#pager'),
sortname: 'EmpID',
viewrecords: true,
sortorder: "desc",
caption: "Customer List"
}).navGrid('#pager', { del: false, add: false, edit: false });
});
,背后的代码是
namespace JqGrid_App{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod(EnableSession = false)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)]
public string GetDataFromDB()
{
_Default OGetData = new _Default();
return OGetData.GetDataFromDB();
}
}}
返回的JSONData格式为
{
"total":1,
"page":1,
"records":1,
"rows":[
{"id":"6","cell":["Robbie","2"]}
]
}
但网格不是绑定数据。
请帮忙。我在这做错了什么。我试着在最近2天解决这个问题。
最诚挚的问候, MLG
答案 0 :(得分:1)
您在代码中犯了太多错误:
query.jqGrid.min.js
和query.jqGrid.src.js
,而不是文件中仅使用一个。GetDataFromDB
方法返回结果为string
,这是错误的。您应该返回具有属性total
,page
,rows
等的对象。目前,您进行手动JSON序列化,结果字符串将再次序列化 。 datatype
作为函数,这是多年前需要引入的新参数,例如here。您当前的实现datatype
函数是错误的,因为它在从服务器接收任何结果之前进行异步 Ajax调用并返回。服务器结果将被丢弃。["Robbie","2"]
)的两个字符串,但您定义了 tree 列我可以继续......
所以我建议你看看其他一些使用ASMX web服务和jqGrid的代码示例。 Here例如,您可以下载一个有效的演示版。在the answer中,您将找到另一个演示。