To show all features in the datagrid, you need to have the features populated in the datagrid.
Features that are not in the map extent are not rendered to the map, so I'm not sure that you are really gaining any performance improvement by constantly changing the contents of the layer - on the contrary that sounds more expensive.