[英]How to export selected rows to csv in magento 2 grid?
我正在嘗試將自定義網格數據導出到csv文件。 它在所有網格數據情況下都能正常工作,但是當我選擇行並嘗試導出時,將導出所有網格數據而不是特定記錄。 我正在使用下面的代碼來導出網格數據。
class ExportCsv extends \Magento\Backend\App\Action
{
/**
* Default file name
*/
const FILENAME = 'registration_code.csv';
/**
* @var Magento\Framework\App\Response\Http\FileFactory
*/
protected $_fileFactory;
public function __construct(Context $context, FileFactory $FileFactory)
{
parent::__construct($context);
$this->_fileFactory = $FileFactory;
}
public function execute()
{
$this->_view->loadLayout(false);
$fileName = self::FILENAME;
$content = $this->_view->getLayout()
->createBlock('Medical\Groups\Block\Adminhtml\Code\Grid')
->setSaveParametersInSession(true)
->getCsv();
return $this->_fileFactory->create(
$fileName,
$content,
DirectoryList::VAR_DIR
);
}
}
對於網格生成,我在Grid.php中使用以下代碼
protected function _prepareColumns()
{
$this->addColumn(
'action',
[
'header' => __('Action'),
'type' => 'action',
'getter' => 'getId',
'actions' => [
[
'caption' => __('Edit'),
'url' => [
'base' => '*/*/edit'
],
'field' => 'id'
]
],
'filter' => false,
'sortable' => false,
'index' => 'stores',
'header_css_class' => 'col-action',
'column_css_class' => 'col-action',
'is_system' => true
]
);
$this->addColumn(
'registration_code',
[
'header' => __('Registration Code'),
'type' => 'text',
'index' => 'registration_code',
'header_css_class' => 'col-id',
'column_css_class' => 'col-id'
]
);
$this->addColumn(
'url',
[
'header' => __('Registration Url'),
'type' => 'text',
'index' => 'url',
'header_css_class' => 'col-id',
'column_css_class' => 'col-id',
'editor' => 'text'
]
);
$this->addColumn(
'customer_email',
[
'header' => __('Customer Email'),
'type' => 'text',
'index' => 'customer_email',
'header_css_class' => 'col-id',
'column_css_class' => 'col-id',
//'renderer' => 'Medical\Groups\Block\Adminhtml\Code\Grid\Column\Renderer\Customer'
]
);
$this->addColumn(
'used_customer',
[
'header' => __('Code used by Customer'),
'type' => 'text',
'index' => 'used_customer',
'header_css_class' => 'col-id',
'column_css_class' => 'col-id'
]
);
$this->addColumn(
'customer_group_id',
[
'header' => __('Medical Group'),
'type' => 'text',
'index' => 'customer_group_id',
'header_css_class' => 'col-id',
'column_css_class' => 'col-id',
'renderer' => 'Medical\Groups\Block\Adminhtml\Code\Grid\Column\Renderer\Customergroups'
]
);
$this->addColumn(
'status',
[
'header' => __('Code Status'),
'type' => 'text',
'index' => 'status',
'header_css_class' => 'col-id',
'column_css_class' => 'col-id',
'renderer' => 'Medical\Groups\Block\Adminhtml\Code\Grid\Column\Renderer\Status'
]
);
$this->addColumn(
'expiry_date',
[
'header' => __('Code Expiry Date'),
'type' => 'text',
'index' => 'expiry_date',
'header_css_class' => 'col-id',
'column_css_class' => 'col-id'
]
);
$this->addExportType($this->getUrl('medicalgroups/*/exportCsv', ['_current' => true]),__('CSV'));
$block = $this->getLayout()->getBlock('grid.bottom.links');
if ($block) {
$this->setChild('grid.bottom.links', $block);
}
return parent::_prepareColumns();
}
我缺少什么嗎?
是的,我認為您正在誤認為布局xml文件:yourmodule_yourcontroller_exportcsv.xml
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<update handle="yourmodule_yourcontroller_grid"/>
</page>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.