The cinder-api have implemented the pagination using limit.
But actually I am asking about the horzion dashboard page admin/system/volumes.
Today I look at the code in horizon/openstack_dashboard/dashboards/project/volumes/tabs.py,
class VolumeTab --> get_volumes_data --> volumes = self._get_volumes()
It's the call _get_volumes without any paramter causing there is not pagination.
Also there are some other issues like no previous page if there is a long list.For this I see a solution in horizon/openstack_dashboard/dashboards/project/stacks/view.py
class IndexView --> get_data. this solve the previous page isssue.
I also find the filter for instance using ipv4 is only for the current page, this is caused by (limit first, filter later, maybe the ip is in different database).
Previously this is also true for project, but they have fixed it by transfer project name to project id and then select.(filter fist, limit later)
Thanks unoz for giving me hint.
There is a lot to learn.