2

Я использую библиотеку Knockout-Kendo.js для моего js + HTML5 SPA. В моей модели просмотра у меня есть myItems Нокаут Наблюдаемый массив. У меня есть клиентский репозиторий, который отвечает за получение данных с сервера и его хранение. Я хочу иметь возможность заполнить myItems в моей модели просмотра на основе запроса POST API, который отправляет объект фильтра (содержащий фильтры и информацию подкачки) на сервер и возвращает список фильтрованных элементов.Подкачка сервера в сети Knockout-Kendo привязана к локальному (заполненному сервером) объекту ko.observableArray в viewmodel

  • Насколько я знаю, Knockout-Kendo не поддерживает Kendo Grid DataSource. Я должен установить источник через свой data объект instesd dataSource. Я прав? Если да, могу ли я выполнить требования в вопросе ниже?
  • Как настроить параметры сетки, чтобы установить общее количество результатов, номер страницы, верхний, пропустить и т. Д. Для подкачки сервера? (Я должен был бы установить свой объект фильтра в viewmodel на основе щелчка страницы Kendo Grid, например, и отправить его с моим POST-запросом на сервер.)
  • Кроме того, чтобы иметь возможность получить общее количество элементов для пейджинга, должен ли я получать данные JSON с сервера в таком формате: {total: 675, data: {some JSON array containing items for the current page}} или есть альтернативы для достижения этого?

ответ

2

Вы можете использовать источник данных напрямую, если вам нужно в Knockout-Kendo. Если вы укажете опцию data с флагом или {}, а затем укажите опцию dataSource, то она будет использовать ее.

Например, вы могли бы связать это нравится:

<div data-bind="kendoGrid: gridOptions"></div> 

С видом модели:

var grid = { 
    data: false, 
    dataSource: { 
    type: "odata", 
    transport: { 
     read: "http://demos.kendoui.com/service/Northwind.svc/Orders" 
    }, 
    schema: { 
     model: { 
     fields: { 
      OrderID: { 
      type: "number" 
      }, 
      Freight: { 
      type: "number" 
      }, 
      ShipName: { 
      type: "string" 
      }, 
      OrderDate: { 
      type: "date" 
      }, 
      ShipCity: { 
      type: "string" 
      } 
     } 
     } 
    }, 
    pageSize: 50, 
    serverPaging: true, 
    serverFiltering: true, 
    serverSorting: true 
    }, 
    height: 250, 
    sortable: true, 
    pageable: true, 
    columns: [{ 
    field: "OrderID", 
    filterable: false 
    }, 
    "Freight", { 
    field: "OrderDate", 
    title: "Order Date", 
    width: 100, 
    format: "{0:MM/dd/yyyy}" 
    }, { 
    field: "ShipName", 
    title: "Ship Name", 
    width: 200 
    }, { 
    field: "ShipCity", 
    title: "Ship City" 
    }] 
}; 

ko.applyBindings({ 
    gridOptions: grid 
}); 

Пример здесь: http://jsfiddle.net/rniemeyer/shwrb/

+0

Будет ли это поддерживать обрабатываемый нокаут наблюдаемый массив данных, который связан? Моя проблема с сеткой kendoui заключается в том, что мне это нравится, и я также использую нокаут религиозно, но я застреваю между нокаутом и даунтомелем кендуи для сетки даже с привязками нокаута. В частности, как я могу получить доступ к наблюдаемому массиву данных, привязанных в данный момент к сетке после того, как будет выполнена сортировка фильтра подкачки? – t316

0

DataSource: {PAGESIZE: 20} указать, как это .... если у упоминается только pageSize: 20, как это, он не работает

 Смежные вопросы

  • Нет связанных вопросов^_^