0

远程数据网格示例中的代码有:

       dataSource: {
            type: "odata",
            transport: {
                read: "http://demos.kendoui.com/service/Northwind.svc/Orders"
            },

数据以“d/__count, d/results[].results is [0]/Order_Details/OrderID 等形式返回(JSON,但写成 XML,因为它更容易)。

虽然这一切都有效,但我对此有很多疑问:

  1. 这是在哪里记录的?
  2. 还有其他可以返回的值吗?我想返回一个成功/失败的布尔值和一个带有失败错误消息的字符串。
  3. 可以更改返回的名称/结构吗?
  4. 去 Order_Details.OrderID 获取 OrderID 是如何工作的?如果还有一个 Employee.OrderID(也返回 Employee 复杂属性)怎么办?它会抓住第一个匹配的吗?可以覆盖吗?它会深入吗?
  5. 请求 URI 中的 inlinecount=allpages 是什么意思?

和树控件类似的问题。

  1. 以上问题1、2、3。
  2. 在请求节点的子节点时,它如何知道将 EmployeeID 作为值传递。
4

1 回答 1

1

您正在查看的格式是OData(这就是数据源类型选项设置为“odata”的原因)。一些 Kendo UI 示例服务返回 OData,而另一些返回 JSONP(带填充的 JSON,跨域请求需要)。

您可以将 TreeView 和 Grid 绑定到以任何格式返回 JSON 的任何服务。您需要正确配置数据源,以便它知道 JSON 响应中的哪个字段包含您的数据项。检查数据源schema.data文档。

例如,如果您的服务“/api/service”返回以下 JSON:

{
   items: [
      { foo: "foo" },
      { foo: "bar" }
   ],
   count: 2
}

您需要像这样配置 Kendo 数据源:

dataSource: {
    transport: {
       read: {
          url: "/api/service",
          dataType: "json"
       }
    },
    schema: {
       data: "items", /* the items field contains the data items */
       total: "count", /* optional, specifies the field which contains the total number of items in case your service supports paging */
    }
}
于 2013-09-19T14:27:48.107 回答