The DataGrid does iterate all the elements, doesn’t skip to the desired page.
This old post talks about that problem.
I don’t know if things have changed since then. Maybe this will give you an idea to start experimenting, and maybe you will finally give us back a working solution