Before Creating Block you have to create basic module structure Admin Module in Magento2
Create file view.php
Create file view.php
namespace NameSpace\ModelName\Block\Adminhtml\FolderName\Sales;
use Magento\Backend\Block\Widget\Form\Container;
use Magento\Backend\Block\Widget\Context;
use Magento\Framework\Registry;
class View extends Container
{
protected $_coreRegistry = null;
protected $_mode = 'view';
protected $helperData;
public function __construct(
Context $context,
\NameSpace\ModelName\Helper\Data $helperData,
Registry $registry,
array $data = []
)
{
$this->_coreRegistry = $registry;
$this->helperData = $helperData;
parent::__construct($context, $data);
}
protected function _construct()
{
$this->_objectId = 'id';
$this->_controller = 'adminhtml_FolderName_sales';
$this->_blockGroup = 'NameSpace_ModelName';
parent::_construct();
$this->removeButton('save');
$this->removeButton('back');
$this->removeButton('reset');
$this->addButton(
'btnId', [
'label' => __('Btn Name'),
'class' => 'primary'
], -1
);
}
}
Create File Tabs.php
namespace NameSpace\ModuleName\Block\Adminhtml\FolderName\View;
class Tabs extends \Magento\Backend\Block\Widget\Tabs
{
protected function _construct()
{
parent::_construct();
$this->setId('FolderName_tabs');
$this->setDestElementId('view_form');
$this->setTitle(__('Title'));
}
protected function _beforeToHtml()
{
$this->addTab(
'tab1', [
'label' => __('TAB 1'),
'title' => __('TAB 1'),
'url' => $this->getUrl('ModuleName/*/controllerName', ['_current' => true]),
'class' => 'ajax'
]
);
$this->addTab(
'tab2', [
'label' => __('TAB 2'),
'title' => __('TAB 2'),
'url' => $this->getUrl('ModuleName/*/controllerName'),
'class' => 'ajax'
]
);
return parent::_beforeToHtml();
}
}
Inside Tab create grid
namespace NameSpace\ModuleName\Block\Adminhtml\FolderName\View\Tab;
class functionalgrid extends \Magento\Backend\Block\Widget\Grid\Extended
{
protected $ModelNameFactory;
protected $helper;
protected $coreRegistry;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Backend\Helper\Data $backendHelper,
\NameSpace\ModuleName\Model\ModelNameFactory $ModelNameFactory,
\Magento\Framework\Registry $coreRegistry,
\NameSpace\ModuleName\Helper\Data $helper,
array $data = []
)
{
$this->ModelNameFactory = $ModelNameFactory;
$this->coreRegistry = $coreRegistry;
$this->helper = $helper;
parent::__construct($context, $backendHelper, $data);
}
protected function _construct()
{
parent::_construct();
$this->setId('FolderName_tab_grid');
$this->setDefaultSort('entity_id');
$this->setUseAjax(true);
}
protected function _addColumnFilterToCollection($column)
{
parent::_addColumnFilterToCollection($column);
}
protected function _prepareCollection()
{
$collection = $this->ModelNameFactory->create()->getCollection();
$this->setCollection($collection);
return parent::_prepareCollection();
}
protected function _prepareColumns()
{
$this->addColumn(
'entity_id', [
'header' => __('Id'),
'sortable' => true,
'index' => 'entity_id',
'header_css_class' => 'col-id',
'column_css_class' => 'col-id'
]
);
$this->addColumn(
'col_id', [
'header' => __('Col Name'),
'index' => 'dbcol_name',
'renderer' => \NameSpace\ModuleName\Block\Adminhtml\FolderName\Renderer\Renderer::class
);
return parent::_prepareColumns();
}
public function getGridUrl()
{
return $this->getUrl('*/*/controllerName', ['_current' => true]);
}
}
For Renderer Click here
Comments
Post a Comment