Secondly, it looks like you are not using the proper methods for paging but rather send some internal variables by hand. Furthermore, you are loading the data from a json file so you always get the same (full) result. No mather what page the store requrests, it will always display the records received from the server side. So if you ask for recrods 1 to 20 but get the first 50, your store will contain the first 50 records.

I passed in limit and start to the dao and I am getting correct values from database. I am having trouble with display on the form. I looked at the params sent to json. My start date is not changing even I change it in the form. Any suggestion is appreciated.

If I get it right (which I'm not sure about) the issue is that when the final handle fires the values for startDate and endDate in your request are not getting updated?

This is because they are defined as fixed extraParams. I would recommend removing them from there and adding them as filters on the store. This way they will be send to the server and can you can update them using the filter() method on the store. (Don't forget to add id's to the filters to make sure you replace the existing onces)