Asp.net 剑道网格未绑定到ASMX Web服务的JSON结果
我在将剑道网格绑定到ASP.NET asmx web服务时遇到问题 下面是HTML代码Asp.net 剑道网格未绑定到ASMX Web服务的JSON结果,asp.net,json,kendo-grid,asmx,Asp.net,Json,Kendo Grid,Asmx,我在将剑道网格绑定到ASP.NET asmx web服务时遇到问题 下面是HTML代码 <!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" href="styles/kendo.common.min.css" /> <link rel="stylesheet" href="styles/kendo.defaul
<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" href="styles/kendo.common.min.css" />
<link rel="stylesheet" href="styles/kendo.default.min.css" />
<link rel="stylesheet" href="styles/kendo.dataviz.min.css" />
<link rel="stylesheet" href="styles/kendo.dataviz.default.min.css" />
<link href="styles/kendo.common-bootstrap.min.css" rel="stylesheet" />
<link href="styles/kendo.bootstrap.min.css" rel="stylesheet" />
<link href="../BOOTSTRAP/bootstrap.min.css" rel="stylesheet" />
<script src="../Scripts/jquery-2.0.3.min.js"></script>
<script src="js/kendo.all.min.js"></script>
<script src="../BOOTSTRAP/bootstrap.min.js"></script>
</head>
<body>
<div id="example">
<div id="grid" class="table table-bordered"></div>
<script>
$(document).ready(function () {
$("#grid").kendoGrid({
columns: [
{ field: "srno", title: "SRNO" },
{ field: "party", title: "PARTY" }
],
dataSource: new kendo.data.DataSource({
transport: {
read: {
url: "../Service/DatabaseHandling.asmx/GetPurchaseJangad_JSON",
dataType: "json",
contentType: "application/json; charset=utf-8"
}
}
}),
schema: {
data: "d"
},
sortable: true
});
});
</script>
</div>
</body>
</html>
网格上仍然看不到任何内容。
浏览器控制台中没有错误。我认为问题只在于JSON数据 修改了下面给出的JSON,将\“替换为”,并删除了方括号前后的引号
{"d":[{"srno":17,"party":"PARESH","dt":"11/5/2015","weight":15000.0,"timestamp":"2015-05-11T20:19:55.093"},{"srno":18,"party":"SIM","dt":"11/5/2015","weight":11000.0,"timestamp":"2015-05-11T20:21:44.177"}]}
我将jQuery代码更改为以下代码
$(document).ready(function () {
var data;
var webMethod = "../Service/DatabaseHandling.asmx/GetPurchaseJangad_JSON";
var parameters = "{}";
$.ajax({
contentType: "application/json; charset=utf-8",
url: webMethod,
data: parameters,
dataType: "json",
success: function (response) {
data = $.parseJSON(response.d);
console.log(data);
$("#grid").kendoGrid({
columns: [
{ field: "srno", title: "SRNO" },
{ field: "party", title: "PARTY" },
{ field: "dt", title: "DATE" },
{ field: "weight", title: "WEIGHT" }
],
dataSource: {
transport: {
read: function (options) {
options.success(data);
}
},
schema: {
}
}
});
}
});
});
我所做的就是通过jQueryAjax调用该服务。获取了包含反斜杠和引号的数据。然后像在代码中一样,使用$.parseJSON获取所需的JSON格式。然后在成功后将数据传递给剑道网格。这就是我的工作方式
但如果可能的话,我仍然在寻找一种在服务器端实现这一点的方法
谢谢ASMX是一项遗留技术,不应用于新的开发。WCF或ASP.NET Web API应用于Web服务客户端和服务器的所有新开发。一个提示:微软已经停用了MSDN上的。我知道,但是结果JSON没有任何问题,那么为什么网格没有绑定呢?@johnsaunder类似的东西可能会有帮助,但它没有使用MVC。很好,返回的JSON来自asmx服务。你能告诉我如何在asmx级别删除引号和反斜杠引号吗?你的回答对我帮助很大。我在服务器端找不到任何东西来删除这些额外的引号。但在一次ajax调用之后,我在客户端完成了这项工作。然后我把数据传给剑道网格。而且效果很好。我现在发布解决方案。
$(document).ready(function () {
var data;
var webMethod = "../Service/DatabaseHandling.asmx/GetPurchaseJangad_JSON";
var parameters = "{}";
$.ajax({
contentType: "application/json; charset=utf-8",
url: webMethod,
data: parameters,
dataType: "json",
success: function (response) {
data = $.parseJSON(response.d);
console.log(data);
$("#grid").kendoGrid({
columns: [
{ field: "srno", title: "SRNO" },
{ field: "party", title: "PARTY" },
{ field: "dt", title: "DATE" },
{ field: "weight", title: "WEIGHT" }
],
dataSource: {
transport: {
read: function (options) {
options.success(data);
}
},
schema: {
}
}
});
}
});
});