美文网首页
2018-06-14

2018-06-14

作者: 搬砖家 | 来源:发表于2018-06-14 19:35 被阅读18次

首先,创建和现有网格相同名称的UI_ComponentXML文件。

/app/code/Webkul/Test/view/adminhtml/ui_component/add_column_example.xml,如产品的网格文件是prouct_listing.xml

<listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <columns name="test_attribute_columns">
        <column name="attributename" class="Webkul\Test\Ui\Component\Listing\Column\ShowAttrAction">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="sortable" xsi:type="boolean">false</item>
                    <item name="label" xsi:type="string" translate="true">AttributeName</item>
                    <item name="sortOrder" xsi:type="number">1</item>
                </item>
            </argument>
        </column>
    </columns>
</listing>
  • name:必须和现有网格的名称相同。
  • class:包含类名,我们在其中定义该列的值。
  • label:用于列的名称,在网格中显示的标题。
  • sortOrder:用于列的排序(好像不管设置多少都会显示在最后面)

然后创建文件 app/code/Max/Test/Ui/Component/Listing/Column/ShowAttrAction.php

<?php
namespace Max\Test\Ui\Component\Listing\Column;
  
use Magento\Framework\View\Element\UiComponent\ContextInterface;
use Magento\Framework\View\Element\UiComponentFactory;
use Magento\Ui\Component\Listing\Columns\Column;
  
class ShowAttrAction extends Column
{  
    /**
     * Prepare Data Source
     *
     * @param array $dataSource
     * @return array
     */
    public function prepareDataSource(array $dataSource)
    {
        if (isset($dataSource['data']['items'])) {
            foreach ($dataSource['data']['items'] as & $item) {
                $item[$this->getData('name')] = "hello world"; //这是设置你想要展示的值
            }
        }
        return $dataSource;
    }
}

这个文件用来传递数据,$DataSource返回包含字段值的数组。
$this->getData('name')是传递到网格中的值。

然后刷新缓存,在网格中就可以看到添加的列了。

相关文章

网友评论

      本文标题:2018-06-14

      本文链接:https://www.haomeiwen.com/subject/wycueftx.html