2

我有一个带有 HttpGet 的 APIController,它返回这个 JSON 响应:

[{"Customer":"AAAA","Office":"Off1"},{"Customer":"AAAA","Office":"Off2"}]

这托管在远程服务器上。

我正在测试我的本地客户端,用这个连接到这个服务器:

<div class="k-content">
    <div id="Grid"></div>
</div>

<script type="text/javascript">
var dataSource = new kendo.data.DataSource({
    transport: {
        read: {
            url: "http://<remoteserver>/<apicontroller>/<actionMethod>",
            dataType: "json",
            data: { customerFilter: "AAAA", topFilter: "10" }
        }
    },
   schema: {
        model: {
            Customer: "Customer",
            Office: "Office"
        }
   }
});

$(document).ready(function () {
        $("#Grid").kendoGrid({
            dataSource: dataSource,
            height: 400,
            columns: [
                { field: "Customer" },
                { field: "Office" }
            ]
        });
    });
</script>

检查提琴手,我得到上面显示的响应。但是,网格是空的。如果我将数据硬编码到如下所示的数据源中,则会填充网格,因此即使收到响应,网格似乎也不知道如何解析它。

var dataSource = new kendo.data.DataSource({
        data:
          [{"Customer":"AAAA","Office":"Off1"},{"Customer":"AAAA","Office":"Off2"}],
        schema: {
            model: {
                Customer: "Customer",
                Office: "Office"
            }
        }

任何人都有一些想法可能是什么问题?

谢谢。

4

2 回答 2

0

您的数据源配置不正确。Kendo UI 文档可能很难遵循,但这是您需要定义数据源的方式:

var dataSource = new kendo.data.DataSource({
  transport: {
    read: {
      url: "http://<remoteserver>/<apicontroller>/<actionMethod>",
      dataType: "json",
      data: { customerFilter: "AAAA", topFilter: "10" }
    }
  },
  schema: {
    model: {
      fields: {
        Customer: {},
        Office: {}
      }
    }
  }
};
于 2013-08-22T03:27:44.227 回答
0

无需提及整个网址。您也可以只指定 uri。

例子:

    var uri = 'api/products';      
  var ds = new kendo.data.DataSource({
      transport: {
          read: {
              url:uri,
              dataType: "json"
          }
          }
   });
于 2014-01-30T10:55:14.997 回答