2015-03-10 2 views
1

Я пытаюсь использовать Grid Ignite UI Grid с данными, возвращаемыми из запросов Ajax на мою собственную службу. Если я получаю все данные из одного запроса и использую результат JSON в качестве источника данных для сетки, это работает нормально. Я действительно хочу, чтобы иметь возможность поддерживать пейджинг, фильтрацию и сортировку на сервере, но мне очень сложно подключить igGrid для создания правильных аякс-запросов.Infragisitics Ignite UI grid and ajax

Я попытался настроить свой собственный объект ig.DataSource с URL-адресом, и это вызовет вызов, но я, похоже, не могу указать запрос как «POST», а не «GET». В настоящее время мы используем «POST» для всех наших запросов ajax и передаем параметры в теле запроса. Я не понял способ сделать это с помощью ig.DataSource.

я отчасти ожидал igDataSource поддерживать функцию с обратным вызовом, что-то вроде этого:

$("#myGrid").igGrid({ 

dataSource: function(data, callback) { 
    $ajax({url: "/something", 
    method: "POST", 
    data: {param1: ""}, 
    success: callback) 
} 

что бы просто вызвать функцию, а затем обрабатывать обратный вызов (по аналогии с тем, как DataTables обрабатывать AJAX запросы. Существует также файл ig.FunctionDataSource, который, как я думал, может работать, но это также не похоже на то, что мне нужно. Похоже, на самом деле нет обратного вызова для вызова ajax для подключения.

У кого-нибудь еще есть это или есть решение для этого? Мой единственный другой вариант - попытаться найти все места, где пейджинг, фильтрация и сортировка выполняются в сетке и обрабатывают события для каждого и делают мои собственные запросы и обновляют сетку. Мне очень нравится то, что элемент управления Ignite предоставляет возможность для функциональности, но без правильной поддержки на стороне сервера для этого элемента управления. Я не уверен, что хочу его использовать. Должен быть лучший способ сделать это?

ответ

0

Пожалуйста, попробуйте, если это будет работать для вас:

 var url = "http://igniteui.com/api/employees?callback=?"; 
     ds = new $.ig.DataSource({ 
      type: "remoteUrl", 
      responseDataKey: "d.results", 
      responseDataType: "jsonp", 
      responseContentType: "application/json; charset=utf-8", 
      dataSource: url, 
      callback: function (success, error) { 
       if (success) { 
        $("#grid").igGrid({ 
          dataSource: ds, 
          autoGenerateColumns: true 
        }); 
       } else { 
        alert(error); 
       } 
      }, 
     }); 
     ds.dataBind(); 
Смежные вопросы