Magento 2 – Change Render Value for Grid in Custom Backend Module

admingridmagento2

I want change text value on my grid custom module, in database I just allowed to save 0 or 1 but in grid I want change and show that value from 1/0 to be Yes/No,

enter image description here

here is my grid layout xml code :

    <?xml version="1.0"?>
  <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
<body>
    <referenceContainer name="content">
        <block class="KS\Brand\Block\Adminhtml\Items" name="adminhtml.block.promo.quote.grid.container">
            <block class="Magento\Backend\Block\Widget\Grid" name="adminhtml.block.promo.quote.grid" as="grid">
                <arguments>
                    <argument name="id" xsi:type="string">ks_brand_items_grid</argument>
                    <argument name="dataSource" xsi:type="object">KS\Brand\Model\Resource\Items\Collection</argument>
                    <argument name="default_sort" xsi:type="string">sort_order</argument>
                    <argument name="default_dir" xsi:type="string">ASC</argument>
                    <argument name="save_parameters_in_session" xsi:type="string">1</argument>
                </arguments>
                <block class="Magento\Backend\Block\Widget\Grid\ColumnSet" as="grid.columnSet" name="adminhtml.promo.quote.grid.columnSet">
                    <arguments>
                        <argument name="rowUrl" xsi:type="array">
                            <item name="path" xsi:type="string">ks_brand/*/edit</item>
                            <item name="extraParamsTemplate" xsi:type="array">
                                <item name="id" xsi:type="string">getId</item>
                            </item>
                        </argument>
                    </arguments>
                    <block class="Magento\Backend\Block\Widget\Grid\Column" as="id">
                        <arguments>
                            <argument name="header" xsi:type="string" translate="true">ID</argument>
                            <argument name="index" xsi:type="string">id</argument>
                            <argument name="column_css_class" xsi:type="string">col-id</argument>
                            <argument name="header_css_class" xsi:type="string">col-id</argument>
                        </arguments>
                    </block>
                    <block class="Magento\Backend\Block\Widget\Grid\Column" as="name">
                        <arguments>
                            <argument name="header" xsi:type="string" translate="true">Name</argument>
                            <argument name="index" xsi:type="string">name</argument>
                        </arguments>
                    </block>
                     <block class="Magento\Backend\Block\Widget\Grid\Column" as="gateway">
                        <arguments>
                            <argument name="header" xsi:type="string" translate="true">Gateway</argument>
                            <argument name="index" xsi:type="string">gateway</argument>
                        </arguments>
                    </block>
                    <block class="Magento\Backend\Block\Widget\Grid\Column" as="is_enable">
                        <arguments>
                            <argument name="header" xsi:type="string" translate="true">Is Enable</argument>
                            <argument name="index" xsi:type="string">is_enable</argument>
                        </arguments>
                    </block>
                    <block class="Magento\Backend\Block\Widget\Grid\Column" as="storefront">
                        <arguments>
                            <argument name="header" xsi:type="string" translate="true">Storefront</argument>
                            <argument name="index" xsi:type="string">storefront</argument>
                        </arguments>
                    </block>

                </block>
            </block>
        </block>
    </referenceContainer>
</body>

Best Answer

Add following line inside your column


<argument name="type" xsi:type="string">options</argument>
<argument name="options" xsi:type="options" model="KS\Brand\Model\Source\Status"/>

Now create KS\Brand\Model\Source\Status.php

namespace KS\Brand\Model\Source;

class Status implements \Magento\Framework\Option\ArrayInterface
{
    /**
     * Change 0,1 to No,Yes.
     *
     * @return array
     */
    public function toOptionArray()
    {
        return [
            ['value' => 0, 'label' => __('No')],
            ['value' => 1, 'label' => __('Yes')]
        ];
    }
}

Clear cache.

Check more detail

Related Topic