Creating a backend data grid
Adding a page to the backend requires, just like the frontend, a configured route, controller, and layout file. In order to display a grid page to show data from a table, there are currently three ways available:
Creating a grid container and specifying the fields to display and data source to use in the grid class. This method is similar to how a grid is built in Magento 1 and is not really flexible/easy to extend. An example of how this is used can be found in the CMS
Page
module:Magento\Cms\Block\Adminhtml\Page
Magento\Cms\Block\Adminhtml\Page\Grid
Using this method, there is only a grid container
Block
class created. The grid fields and options are defined in the layout XML file. This makes it possible to extend the grid easily by adding extra fields to the XML. An example of this can be found in the Customer Group code in the following:Magento\Customer\view\adminhtml\layout\customer_group_index.xml
The last option is fully configured through XML and gives the...