Сеть Кендо - привязка к удаленным данным из трех веб-сервисов

Можно ли построить единую сетку кендо из трех веб-сервисов (путем получения окончательных данных после объединения всех трех веб-сервисов)? Я использую asp.net веб-формы, а не MVC.

1 ответ

Да, это возможно, но вы не должны делать это в клиентском UI DataSource клиента, но на сервере. Причины:

  1. Существует много кода для реализации, если вы делаете это на клиенте.
  2. Для этого просто требуется чтение источников последовательно.
  3. Для параллельного чтения источников данных требуется много кода для работы с разными временами чтения и передачи.
  4. Вы должны смешивать результаты различных наборов данных.
  5. Это работает для чтения, но обновление и удаление - это много (много, MUCH) код.
  6. Чтение из БД нескольких DataSource используется так же просто, как JOIN.

Если, несмотря на данные, которые вы все еще хотите, попробуйте определить источник данных для каждого из разных источников данных и четвертый для состава остальных трех.

Когда вызывается операция read сконфигурированного источника данных, вызовите 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);
 });
 });
 });
 }
 }
 ...
}

licensed under cc by-sa 3.0 with attribution.