当前位置: 首页 > 知识库问答 >
问题:

剑道UI的JSONP响应不填充网格

宰父跃
2023-03-14

请给我你的建议。

以下URL提供jsonp格式的数据:http://demos.kendoui.com/service/Products

然而,我所做的唯一改变是使用我自己的网址指向简单的PHP来获取jsonp数据,如下所示:

<?php
header('Vary: Accept-Encoding');
header('Connection: Keep-Alive');
header('Content-Encoding: gzip');
header('Content-Length: 1743');
header('Content-Type: application/x-javascript; charset=utf-8');
echo gzencode('callback([{"ProductID":2,"ProductName":"Chang","UnitPrice":19,"UnitsInStock":17,"Discontinued":false}])');
?> 

HTML源代码如下:

<!DOCTYPE html>
<html>
<head>
<title>ESS Software Inventory</title>
<meta charset="utf-8">
<link href="./kendoui/content/shared/styles/examples-offline.css" rel="stylesheet">
<link href="./kendoui/styles/kendo.common.min.css" rel="stylesheet">
<link href="./kendoui/styles/kendo.rtl.min.css" rel="stylesheet">
<link href="./kendoui/styles/kendo.default.min.css" rel="stylesheet">

<script src="./kendoui/js/jquery.min.js"></script>
<script src="./kendoui/js/kendo.web.min.js"></script>
<script src="./kendoui/content/shared/js/console.js"></script>
<script>

</script>
</head>

<body>

<a class="offline-button" href="../index.html">Back</a>

<div id="example" class="k-content">
<div id="grid"></div>

<script>
$(document).ready(function () {
var crudServiceBaseUrl = "http://dnettools/essinventory/cgi-bin",
//var crudServiceBaseUrl = "http://demos.kendoui.com/service",
dataSource = new kendo.data.DataSource({
transport: {
read: {
url: crudServiceBaseUrl + "/products.php",
//url: crudServiceBaseUrl + "/Products",
dataType: "jsonp"
},
update: {
url: crudServiceBaseUrl + "/products.php",
dataType: "jsonp"
},
destroy: {
url: crudServiceBaseUrl + "/products.php",
dataType: "jsonp"
},
create: {
url: crudServiceBaseUrl + "/products.php",
dataType: "jsonp"
},
parameterMap: function(options, operation) {
if (operation !== "read" && options.models) {
return {models: kendo.stringify(options.models)};
}
}
},
batch: true,
pageSize: 20,
schema: {
model: {
id: "ProductID",
fields: {
ProductID: { editable: false, nullable: true },
ProductName: { validation: { required: true } },
UnitPrice: { type: "number", validation: { required: true, min: 1} },
Discontinued: { type: "boolean" },
UnitsInStock: { type: "number", validation: { min: 0, required: true } }
}
}
}
});

$("#grid").kendoGrid({
dataSource: dataSource,
navigatable: true,
pageable: true,
height: 430,
toolbar: ["create", "save", "cancel"],
columns: [
"ProductName",
{ field: "UnitPrice", title: "Unit Price", format: "{0:c}", width: 110 },
{ field: "UnitsInStock", title: "Units In Stock", width: 110 },
{ field: "Discontinued", width: 110 },
{ command: "destroy", title: "&nbsp;", width: 90 }],
editable: true
});
});
</script>
</div>

</body>
</html>

共有1个答案

闻人浩波
2023-03-14

必须使用:因为返回的jsonp应该有动态回调名称

 parse_str($_SERVER['QUERY_STRING']);  <br/>  echo &quot;$callback&quot; . '([{&quot;ProductID&quot;:1,&quot;ProductName&quot;:&quot;Chai&quot;,&quot;UnitPrice&quot;:18,&quot;UnitsInStock&quot;:39,&quot;Discontinued&quot;:false},{&quot;ProductID&quot;:2,&quot;ProductName&quot;:&quot;Chang&quot;,&quot;UnitPrice&quot;:19,&quot;UnitsInStock&quot;:17,&quot;Discontinued&quot;:false},{&quot;ProductID&quot;:3,&quot;ProductName&quot;:&quot;Aniseed Syrup&quot;,&quot;UnitPrice&quot;:10,&quot;UnitsInStock&quot;:13,&quot;Discontinued&quot;:false},{&quot;ProductID&quot;:4,&quot;ProductName&quot;:&quot;Chef Anton\u0027s Cajun Seasoning&quot;,&quot;UnitPrice&quot;:22,&quot;UnitsInStock&quot;:53,&quot;Discontinued&quot;:false}])';
 类似资料:
  • 我对某些字段的验证有问题。我只想验证几个字段,其他字段不应该验证。在我的Email字段中,我启动了一个函数来检查格式是否正确,但其他字段只是设置为验证。任何帮助都将不胜感激。 使用此代码,在尝试保存/更新时将验证所有字段。我不想验证分机或电话号码。

  • 嗨,我正在尝试做剑道网格,但它不工作,显示网格,但没有显示数据。我不知道怎么了。我不知道parametersMap是怎么工作的。请帮帮我。 控制器 这是剧本 Json数据返回:http://localhost:53232/Home/GetGeo?id=5

  • 我想在我的剑道ui网格中进行内联编辑。数据绑定似乎工作正常,但当我在编辑某些内容后单击“更新”按钮时,范围会得到更新,但编辑对话框不会消失。如果单击另一个编辑按钮,它将进入失效状态。毕竟,只有当我至少提供一个伪函数作为k-save时,它才会更新作用域。出于某种原因,单击“取消”按钮确实会更新范围。所以“取消”按钮实现了我对“更新”按钮的期望。 您可能会看到,我想更新客户端的本地范围,而不是向任何服

  • 我在以角度加载网格的保存状态时遇到一些问题。 这是网格HTML: 稍后,我启动Http调用和$scope。网格选项已填充,网格工作正常。 然后通过以下方式保存网格的状态: 这很好,当我在控制台中打印输出时。看起来是这样的: {“dataSource”:{“schema”:{“data”:“data”},“transport”:{},“serverSorting”:true,“table”:null

  • 如何加密列产品ID在Kendo ui网格用户看不到我的真实ID?我使用ASP. NET MVC 5。 谢谢你!

  • 我在剑道格子里有一个剑道组合框。我使用MVVM绑定将组合框绑定到列表中的项目。问题是,当我从combobox下拉列表中选择一个项目时,一切正常,但当我手动在combobox中键入某个内容时,该值不会保存。。。以下是我的网格和组合框代码: 网格: 数据来源: 组合框: