Я хочу створити в моєму адміністраторі посилання на власну сітку із заздалегідь визначеними фільтрами. Сітка зроблена за допомогою компонента лістингу користувальницького інтерфейсу (XML) і має стовпець, який називається form_id
, налаштований так:
<column name="form_id">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">textRange</item>
<item name="label" xsi:type="string" translate="true">Form id</item>
</item>
</argument>
</column>
Сітка працює чудово. Я можу застосувати фільтр і все працює добре. Сітка приємно оновлюється із запитом XHR.
Однак ... Я хочу мати змогу мати значення фільтрів заздалегідь визначене в якийсь момент. Наприклад, я хочу мати змогу відкрити сітку, коли вона відфільтрована за ID = 3.
Тому я вже спробував завантажити сторінку з тими ж параметрами URL, що і XHR-запит, а також просто додати єдині необхідні параметри:
?namespace=form_response_listing&search=&filters[placeholder]=true&filters[form_id][from]=3&filters[form_id][to]=3&paging[pageSize]=20&paging[current]=1
Так само, як:
?filters[form_id][from]=3&filters[form_id][to]=3
Обидва не мали успіху. То як я можу попередньо заповнити фільтри за допомогою URL-адреси?
Редагувати:
Я не впевнений, чи це дублікат іншого питання (про що говорилося в коментарях нижче). У моєму випадку я використовую віртуальний тип як колекцію для своєї сітки:
<virtualType name="Vendor\Module\Model\ResourceModel\Response\Grid\Collection"
type="Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult">
<arguments>
<argument name="mainTable" xsi:type="string">vendormodule_form_response</argument>
<argument name="resourceModel" xsi:type="string">Vendor\Module\Model\ResourceModel\Response</argument>
</arguments>
</virtualType>
Тож це не те, що у мене є віджет фізичного блоку для мого сіткового віджета, він створений суто з переліком XML компонентів інтерфейсу.
Тим не менш, я все одно перевірю, чи допоможе вказане питання в моєму випадку використання.
prepareColumns
методу.