Magento 2: ¿Cómo oculto una columna de una grilla de administración?

Respuestas:

3

Puedes probar con <item name="componentDisabled" xsi:type="boolean">true</item>

Por ejemplo:

Vendor/Module/view/adminhtml/ui_component/product_form.xml

<field name="backorders">
    <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="componentDisabled" xsi:type="boolean">true</item>
            </item>
    </argument>
</field>
Khoa TruongDinh
fuente
Gracias @Khoa, pero quiero mostrar la columna en función de los permisos del usuario, por lo que quiero que la columna esté allí, pero que comience a ocultarse.
dbcn
3

utilizar <item name="visible" xsi:type="boolean">false</item> en el nodo de configuración del argumento de datos al declarar la columna

p.ej.

<column name="created_at">
    <argument name="data" xsi:type="array">
        <item name="config" xsi:type="array">
            <item name="resizeEnabled" xsi:type="boolean">false</item>
            <item name="filter" xsi:type="string">dateRange</item>
            <item name="sorting" xsi:type="string">desc</item>
            <item name="label" xsi:type="string" translate="true">Created at</item>
            <item name="sortOrder" xsi:type="number">120</item>
            <item name="visible" xsi:type="boolean">false</item>
        </item>
    </argument>
</column>

El único problema que el filtro no mostrará hasta que cambie la columna a visible

Mammouth
fuente
Gracias @Mammouth, pero esto se ve como una configuración: quiero poder cambiar la visibilidad en función del rol de los usuarios, por lo que tendría que verificarlo en el código.
dbcn
acl no fue creado para esto ... pero para imitar algo similar acaba de extender anulación / Magento_Ui/view/base/web/js/grid/columns/column.jscon su lógica de negocio
Mammouth
De lo contrario, creo que sería bueno abrir un nuevo hilo a su problema actual (ocultar la columna por la configuración de la función del usuario), porque este ya resuelto
Mammouth
@Mammouth, pero el filtro debería ser visible, ¿solo podemos escondernos de la columna?
Jafar pinjar
1

Agregue el siguiente código en su ui xml para eliminar columnas

<column name="name_of_column">
          <argument name="data" xsi:type="array">
               <item name="config" xsi:type="array">
               <item name="componentDisabled" xsi:type="boolean">true</item>
           </item>
      </argument>
</column>
<field name="name_of_column">
          <argument name="data" xsi:type="array">
               <item name="config" xsi:type="array">
               <item name="componentDisabled" xsi:type="boolean">true</item>
           </item>
      </argument>
</field>
Arvind Hathiya
fuente