Kendo网格 - 绑定到三个Web服务的远程数据

时间:2014-05-20 15:18:56

标签: asp.net kendo-ui kendo-grid

是否可以从三个Web服务构建单个kendo网格(通过在组合所有三个Web服务后获取最终数据)?我使用的是asp.net网络表单而不是MVC。

1 个答案:

答案 0 :(得分:0)

是的,这是可能的,但你不应该在客户端Kendo UI DataSource中,而是在服务器中。原因是:

  1. 如果您在客户端中执行此操作,则需要执行大量代码。
  2. 简单操作需要按顺序阅读资源。
  3. 并行阅读资源需要大量代码来处理不同的阅读和传输时间。
  4. 您必须混合不同数据集的结果。
  5. 这适用于阅读,但更新和删除的代码很多(很多,很多)。
  6. 从DB中读取多个DataSource就像使用JOIN一样简单。
  7. 如果您仍然想要数据,请尝试为每个不同的DataSource定义一个DataSource,为其他三个DataSource的组合定义第四个。

    当调用组合数据源的read操作时,在三个单独的DataSource中的第一个上调用fetch,在此fetch函数处理程序中,调用第二个fetch,第三个获取,创建收到的三个数据的合并。

    // First datasource
    var ds1 = new kendo.data.DataSource({
        ...
    });
    // Second datasource
    var ds2 = new kendo.data.DataSource({
        ...
    });
    // Third datasource
    var ds3 = new kendo.data.DataSource({
        ...
    });
    // Composed
    var ds = new kendo.data.DataSource({
       transport: {
            read: function (op) {
                 ds1.fetch(function () {
                     ds2.fetch(function () {
                         ds3.fetch(function () {
                             // Merge data from ds1, ds2 and ds3 in data
                             ... 
                             // Invoke success
                             op.success(data);
                         });
                     });
                 });
            }
       }
       ...
    }