简体   繁体   中英

In knockout Change Paging when Data is changed

In knockout I wish to change/ refresh Paging when data is changed. For example: I have a data set of 100[5 Records per Page] and I am on Page 10. Now with some more search Data is changed from 100 to 5 and I am on Page 10, but when data is changed I want paging to be on First page. ie Paging to be refreshed.

Here is my [Fiddle] ( https://jsfiddle.net/975ncawv/281/ )

MyVM.prototype.loadData = function(rawData) {
  this.items(rawData.map(RowModel.fromRawDataPoint));
};
ko.applyBindings(new MyVM(myData));

but when data is changed

this.items.subscribe( /* ... */ )

I want paging to be on First page

this.pageNumber(0)

Put together:

this.items.subscribe(function() {
  this.pageNumber(0);
}, this);

I don't see any logic concerning the search data, but I'd expect something along the lines of:

this.filteredItems = ko.pureComputed(function() {
  return this.items().filter(/* ... */);
}, this);

Once implemented, you can change the subscribe to items to be on filteredItems to make sure you reset both when the data source changes as well as when the search query changes.

Two things need to be changed inside the loadData function.

  1. The all observableArray needs to be updated with the new values of items , since it gets the values in a similar fashion in line 65.
  2. pageNumber needs to be reset to 0, since paginated and all are listening to it through the computed function. (And the table is displaying the values of paginated ).

It would look like this updated fiddle .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM