a paging foreach binding for knockout
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE
README.md
knockout.pager.css
knockout.pager.js
knockout.pager.nuspec
tests.css
tests.html
tests.js

README.md

knockout.pager

a paging foreach binding for knockout

USAGE:

Instead of

data-bind="foreach: observableArray"

use

data-bind="pagedForeach: observableArray"

Somewhere also

data-bind="pageLinks: observableArray"

Example / Run Unit Tests: https://rawgithub.com/nathanrobinson/knockout.pager/master/tests.html

You can bind to an observableArray, a computed that returns an array, or a function that takes itemsPerPage and page parameters (to call server-side ajax).

Available bindings:

  pagedForeach: displays a single page of items using an inline template (just like foreach).
  pageLinks: displays the paging links inside the current block (first page, page numbers, and last page).
  pageSizeControl: displays a select list with common page sizes (10, 25, 50, 100).
  pageSize: (in combination with any of the previous bindings) sets/updates the number of items per page.
  pagesShowAll: adds and "All" option to the pageSizeControl that will display all items.

The first three bindings should be bound to the same observableArray, computed, or function which returns an array. The function should have the signature: function (itemsPerPage, page){} which returns an array of items for the current page. If your server method is asyncronous, you can bind pageLinks and pageSizeControl to serverMethod and use a normal foreach bound to an observable array and update the observable array using the server method (see examples in tests.html and tests.js.

To Do:

  • Add change page callback to support server-side paging.