A third option is to show the most important attributes in the Datagrid. As many as can for on the page. Then add a tooltip page to the Datagrid, see property ‘General’ ‘ Tooltip’, and set the property ‘Show tooltip’ of each Datagrid attribute to yes. On the tooltip page you can show the rest of the attributes.
if you mean attributes when you write about “details”, two options came to my mind.
Showing all 20 columns in a horizontal table will not at all be user friendly, as user won’t be able to read any column (unless the data length of the column is very less).
Best user friendly approach is, show only important unique columns (generally this comes from business/user group who will use that page). Then on double click (as well as from view button on the bottom of the page), open another pop up window to show all the details with a close button for user to close the pop up window.
Doing a side by side as Mikolaj suggested will be a better approach, with a downside of getting even less space for the columns of the main table, so will fit even less numbers of column. Plus, if you are a beginner, designing a side by side page with reference selector will take more time.
Datagrid will work the best, and it also provides pagination as well as search/filter option by default, which will build your pagination and search feature too without extra effort.