Skip to main content
Update answer
Source Link
Msquare
  • 9.5k
  • 7
  • 30
  • 71

try this

Try This

enter image description here

above code running good[Update]

enter image description hereFor UI Component

app/code/VendoreName/ModuleName/view/adminhtml/ui_component

import_storelocation_form.xml

<?xml version="1.0" encoding="UTF-8"?> <form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd"> <argument name="data" xsi:type="array"> <item name="js_config" xsi:type="array"> <item name="provider" xsi:type="string">import_storelocation_form.import_storelocation_form_data_source</item> <item name="deps" xsi:type="string">import_storelocation_form.import_storelocation_form_data_source</item> </item> <item name="label" xsi:type="string" translate="true">General Information</item> <item name="config" xsi:type="array"> <item name="dataScope" xsi:type="string">data</item> <item name="namespace" xsi:type="string">import_storelocation_form</item> </item> <item name="spinner" xsi:type="string">general_information</item> <item name="buttons" xsi:type="array"> <item name="back" xsi:type="string">VendoreName\ModuleName\Block\Adminhtml\Storelocator\Edit\Button\Back</item> <item name="reset" xsi:type="string">VendoreName\ModuleName\Block\Adminhtml\Storelocator\Edit\Button\Reset</item> <item name="save" xsi:type="string">VendoreName\ModuleName\Block\Adminhtml\Storelocator\Edit\Button\SaveImportData</item> </item> <item name="template" xsi:type="string">templates/form/collapsible</item> </argument> <dataSource name="import_storelocation_form_data_source"> <argument name="dataProvider" xsi:type="configurableObject"> <argument name="class" xsi:type="string">VendoreName\ModuleName\Model\DataProvider</argument> <argument name="name" xsi:type="string">import_storelocation_form_data_source</argument> <argument name="primaryFieldName" xsi:type="string">entity_id</argument> <argument name="requestFieldName" xsi:type="string">entity_id</argument> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="submit_url" xsi:type="url" path="*/*/saveimportdata"/> </item> </argument> </argument> <argument name="data" xsi:type="array"> <item name="js_config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/form/provider</item> </item> </argument> </dataSource> <fieldset name="general_information"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="collapsible" xsi:type="boolean">false</item> <item name="label" xsi:type="string" translate="true"></item> <item name="sortOrder" xsi:type="number">20</item> </item> </argument> <field name="importfile"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">string</item> <item name="source" xsi:type="string">importfile</item> <item name="label" xsi:type="string" translate="true">Upload File</item> <item name="visible" xsi:type="boolean">true</item> <item name="allowedExtensions" xsi:type="string">csv xls</item> <item name="maxFileSize" xsi:type="number">2097152</item> <item name="formElement" xsi:type="string">fileUploader</item> <item name="previewTmpl" xsi:type="string">VendoreName_ModuleName/file-preview</item> <item name="elementTmpl" xsi:type="string">ui/form/element/uploader/uploader</item> <item name="dataScope" xsi:type="string">importfile</item> <item name="notice" xsi:type="string" translate="true">Allow File Types:- .csv and .xls</item> <item name="validation" xsi:type="array"> <item name="required-entry" xsi:type="boolean">true</item> </item> <item name="uploaderConfig" xsi:type="array"> <item name="url" xsi:type="url" path="storelocator/storelocator/Importupload" > <param name="target_element_id">importfile</param> <param name="type">image</param> </item> </item> </item> </argument> </field> </fieldset> </form> 

Click Here to download the source code for the UI component

enter image description here

try this

above code running good

enter image description here

Try This

enter image description here

[Update]

For UI Component

app/code/VendoreName/ModuleName/view/adminhtml/ui_component

import_storelocation_form.xml

<?xml version="1.0" encoding="UTF-8"?> <form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd"> <argument name="data" xsi:type="array"> <item name="js_config" xsi:type="array"> <item name="provider" xsi:type="string">import_storelocation_form.import_storelocation_form_data_source</item> <item name="deps" xsi:type="string">import_storelocation_form.import_storelocation_form_data_source</item> </item> <item name="label" xsi:type="string" translate="true">General Information</item> <item name="config" xsi:type="array"> <item name="dataScope" xsi:type="string">data</item> <item name="namespace" xsi:type="string">import_storelocation_form</item> </item> <item name="spinner" xsi:type="string">general_information</item> <item name="buttons" xsi:type="array"> <item name="back" xsi:type="string">VendoreName\ModuleName\Block\Adminhtml\Storelocator\Edit\Button\Back</item> <item name="reset" xsi:type="string">VendoreName\ModuleName\Block\Adminhtml\Storelocator\Edit\Button\Reset</item> <item name="save" xsi:type="string">VendoreName\ModuleName\Block\Adminhtml\Storelocator\Edit\Button\SaveImportData</item> </item> <item name="template" xsi:type="string">templates/form/collapsible</item> </argument> <dataSource name="import_storelocation_form_data_source"> <argument name="dataProvider" xsi:type="configurableObject"> <argument name="class" xsi:type="string">VendoreName\ModuleName\Model\DataProvider</argument> <argument name="name" xsi:type="string">import_storelocation_form_data_source</argument> <argument name="primaryFieldName" xsi:type="string">entity_id</argument> <argument name="requestFieldName" xsi:type="string">entity_id</argument> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="submit_url" xsi:type="url" path="*/*/saveimportdata"/> </item> </argument> </argument> <argument name="data" xsi:type="array"> <item name="js_config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/form/provider</item> </item> </argument> </dataSource> <fieldset name="general_information"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="collapsible" xsi:type="boolean">false</item> <item name="label" xsi:type="string" translate="true"></item> <item name="sortOrder" xsi:type="number">20</item> </item> </argument> <field name="importfile"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">string</item> <item name="source" xsi:type="string">importfile</item> <item name="label" xsi:type="string" translate="true">Upload File</item> <item name="visible" xsi:type="boolean">true</item> <item name="allowedExtensions" xsi:type="string">csv xls</item> <item name="maxFileSize" xsi:type="number">2097152</item> <item name="formElement" xsi:type="string">fileUploader</item> <item name="previewTmpl" xsi:type="string">VendoreName_ModuleName/file-preview</item> <item name="elementTmpl" xsi:type="string">ui/form/element/uploader/uploader</item> <item name="dataScope" xsi:type="string">importfile</item> <item name="notice" xsi:type="string" translate="true">Allow File Types:- .csv and .xls</item> <item name="validation" xsi:type="array"> <item name="required-entry" xsi:type="boolean">true</item> </item> <item name="uploaderConfig" xsi:type="array"> <item name="url" xsi:type="url" path="storelocator/storelocator/Importupload" > <param name="target_element_id">importfile</param> <param name="type">image</param> </item> </item> </item> </argument> </field> </fieldset> </form> 

Click Here to download the source code for the UI component

enter image description here

i have implemented this line "implements \Magento\Backend\Block\Widget\Tab\TabInterface" and the error goes please accpet this change
Source Link
<?php namespace vendor\module\Block\Adminhtml\Importpincode\Edit\Tab; class Importpincode extends \Magento\Backend\Block\Widget\Form\Generic implements \Magento\Backend\Block\Widget\Tab\TabInterface { protected $_assetRepo; public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Data\FormFactory $formFactory, \Magento\Framework\View\Asset\Repository $assetRepo, array $data = [] ) { $this->_assetRepo = $assetRepo; parent::__construct($context, $registry, $formFactory, $data); } /** * Prepare form * * @return $this */ protected function _prepareForm() { $path = $this->_assetRepo->getUrl("vendor_module::importsample/sample.csv"); $form = $this->_formFactory->create(); $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storemanager = $objectManager->create('Magento\Store\Model\StoreManagerInterface'); $fieldset = $form->addFieldset( 'base_fieldset', [ 'legend' => __('Import Pincodes'), 'class' => 'fieldset-wide' ] ); $importdata_script = $fieldset->addField( 'file', 'file', [ 'name' => 'file', 'label' => __('Upload File'), 'title' => __('Upload File'), 'required' => true, ] ); $importdata_script->setAfterElementHtml(" <span id='sample-file-span' ><a id='sample-file-link' href='".$path."' >Download Sample File</a></span> "); $this->setForm($form); return parent::_prepareForm(); } /** * Prepare label for tab * * @return string */ public function getTabLabel() { return __('Import Pincodes'); } /** * Prepare title for tab * * @return string */ public function getTabTitle() { return $this->getTabLabel(); } /** * Can show tab in tabs * * @return boolean */ public function canShowTab() { return true; } /** * Tab is hidden * * @return boolean */ public function isHidden() { return false; } } 
<?php namespace vendor\module\Block\Adminhtml\Importpincode\Edit\Tab; class Importpincode extends \Magento\Backend\Block\Widget\Form\Generic { protected $_assetRepo; public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Data\FormFactory $formFactory, \Magento\Framework\View\Asset\Repository $assetRepo, array $data = [] ) { $this->_assetRepo = $assetRepo; parent::__construct($context, $registry, $formFactory, $data); } /** * Prepare form * * @return $this */ protected function _prepareForm() { $path = $this->_assetRepo->getUrl("vendor_module::importsample/sample.csv"); $form = $this->_formFactory->create(); $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storemanager = $objectManager->create('Magento\Store\Model\StoreManagerInterface'); $fieldset = $form->addFieldset( 'base_fieldset', [ 'legend' => __('Import Pincodes'), 'class' => 'fieldset-wide' ] ); $importdata_script = $fieldset->addField( 'file', 'file', [ 'name' => 'file', 'label' => __('Upload File'), 'title' => __('Upload File'), 'required' => true, ] ); $importdata_script->setAfterElementHtml(" <span id='sample-file-span' ><a id='sample-file-link' href='".$path."' >Download Sample File</a></span> "); $this->setForm($form); return parent::_prepareForm(); } /** * Prepare label for tab * * @return string */ public function getTabLabel() { return __('Import Pincodes'); } /** * Prepare title for tab * * @return string */ public function getTabTitle() { return $this->getTabLabel(); } /** * Can show tab in tabs * * @return boolean */ public function canShowTab() { return true; } /** * Tab is hidden * * @return boolean */ public function isHidden() { return false; } } 
<?php namespace vendor\module\Block\Adminhtml\Importpincode\Edit\Tab; class Importpincode extends \Magento\Backend\Block\Widget\Form\Generic implements \Magento\Backend\Block\Widget\Tab\TabInterface { protected $_assetRepo; public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Data\FormFactory $formFactory, \Magento\Framework\View\Asset\Repository $assetRepo, array $data = [] ) { $this->_assetRepo = $assetRepo; parent::__construct($context, $registry, $formFactory, $data); } /** * Prepare form * * @return $this */ protected function _prepareForm() { $path = $this->_assetRepo->getUrl("vendor_module::importsample/sample.csv"); $form = $this->_formFactory->create(); $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storemanager = $objectManager->create('Magento\Store\Model\StoreManagerInterface'); $fieldset = $form->addFieldset( 'base_fieldset', [ 'legend' => __('Import Pincodes'), 'class' => 'fieldset-wide' ] ); $importdata_script = $fieldset->addField( 'file', 'file', [ 'name' => 'file', 'label' => __('Upload File'), 'title' => __('Upload File'), 'required' => true, ] ); $importdata_script->setAfterElementHtml(" <span id='sample-file-span' ><a id='sample-file-link' href='".$path."' >Download Sample File</a></span> "); $this->setForm($form); return parent::_prepareForm(); } /** * Prepare label for tab * * @return string */ public function getTabLabel() { return __('Import Pincodes'); } /** * Prepare title for tab * * @return string */ public function getTabTitle() { return $this->getTabLabel(); } /** * Can show tab in tabs * * @return boolean */ public function canShowTab() { return true; } /** * Tab is hidden * * @return boolean */ public function isHidden() { return false; } } 
added 118 characters in body
Source Link
Msquare
  • 9.5k
  • 7
  • 30
  • 71

above code running good

enter image description here

above code running good

enter image description here

Source Link
Msquare
  • 9.5k
  • 7
  • 30
  • 71
Loading