magento 2中的排序无法正常工作自定义订单网格

时间:2019-05-11 11:22:06

标签: magento2

我已经在magento中创建了一个自定义订单网格。如果我对网格进行一次排序,则会发出ajax请求,并且一切都正确排序。但是,第二种排序将使用所有相同的订单ID呈现网格。

此问题与我的问题相同:https://magento.stackexchange.com/questions/123707/magento-grid-component-not-sorting-correctly。尝试了他的解决方案,但是没有用。

<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <argument name="data" xsi:type="array">
        <item name="js_config" xsi:type="array">
            <item name="provider" xsi:type="string">syncback_order_form.syncback_order_form_data_source</item>
            <item name="deps" xsi:type="string">syncback_order_form.syncback_order_form_data_source</item>
        </item>
        <item name="label" xsi:type="string" translate="true">API URL Form</item>
        <item name="config" xsi:type="array">
            <item name="dataScope" xsi:type="string">data</item>
            <item name="namespace" xsi:type="string">syncback_order_form</item>
        </item>
        <item name="template" xsi:type="string">templates/form/collapsible</item>
        <item name="buttons" xsi:type="array">
            <item name="save" xsi:type="array">
                <item name="name" xsi:type="string">save</item>
                <item name="label" xsi:type="string">Save API</item>
                <item name="class" xsi:type="string">primary</item>
                <item name="url" xsi:type="string">*/*/saveapi</item>
            </item>
        </item>
    </argument>
    <dataSource name="syncback_order_form_data_source">
        <argument name="dataProvider" xsi:type="configurableObject">
            <argument name="class" xsi:type="string">Panemirates\Syncbackorder\Ui\Component\Apiform\DataProvider</argument>
            <argument name="name" xsi:type="string">syncback_order_form_data_source</argument>
            <argument name="primaryFieldName" xsi:type="string">type_id</argument>
            <argument name="requestFieldName" xsi:type="string">id</argument>

            <argument name="collectionFactory" xsi:type="object">Panemirates\Syncbackorder\Model\ResourceModel\Collections\ApisavercollectionFactory</argument>

            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="submit_url" xsi:type="url" path="panemirates/status/saveapi"></item>
                </item>
            </argument>
        </argument>

        <argument name="data" xsi:type="array">
            <item name="js_config" xsi:type="array">
                <item name="component" xsi:type="string">Magento_Ui/js/form/provider</item>
            </item>
        </argument> 
    </dataSource>

    <fieldset name="callback_form">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
            <!-- 
                <item name="collapsible" xsi:type="boolean">true</item>
             -->
                <item name="label" xsi:type="string" translate="true">Callback URL</item>
                <item name="sortOrder" xsi:type="number">20</item>
            </item>
        </argument>
        <field name="url">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="label" xsi:type="string" translate="true">API Url</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <!--
                    <item name="source" xsi:type="string">panemirates_apiurl</item>
                    <item name="dataScope" xsi:type="string">url</item>

                    <item name="default" xsi:type="string">${  console.log($.syncback) }</item>
                    -->
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>                  
                        <item name="url-required" xsi:type="boolean">true</item>
                        <item name="validate-url" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>

    </fieldset>
</form>```

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并在您提供的链接中找到了答案,更具体地说是在https://magento.stackexchange.com/a/123884/58072

只需将此代码添加到您的数据源中

<argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="update_url" xsi:type="url" path="mui/index/render"/>
                <item name="storageConfig" xsi:type="array">
                    <item name="indexField" xsi:type="string">column_id</item>
                </item>
            </item>
        </argument>

答案 1 :(得分:0)

我可能迟到了,但希望如此会对其他像我这样的人有所帮助。我也面临同样的问题,并努力解决,但没有得到任何帮助。因此,我遍历了核心模块并找到了解决方案:

在ui_component的数据源元素内添加以下代码行。

<settings>
    <storageConfig>
        <param name="cacheRequests" xsi:type="boolean">false</param>
    </storageConfig>
    <updateUrl path="mui/index/render"/>
</settings>

这解决了我的问题。