사전 정의 된 필터를 사용하여 관리자의 사용자 지정 그리드에 대한 링크를 만들고 싶습니다. 그리드는 XML (UI Listing Component)로 만들어지며 다음과 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에서 필터링 될 때 그리드를 열 수 있기를 원합니다.
그래서 이미 XHR 요청과 동일한 URL 매개 변수를 사용하여 페이지를로드하고 단순히 필요한 매개 변수를 추가하려고했습니다.
?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>
따라서 그리드 위젯을위한 물리적 블록 클래스가있는 것이 아니라 순수하게 UI 구성 요소 목록 XML로 생성됩니다.
그럼에도 불구하고 언급 된 질문이 내 사용 사례에 도움이되는지 확인하겠습니다.
prepareColumns
메소드 대신 xml 파일로 구성되었습니다 .