SAPUI5 Treetable Binding для фильтра - PullRequest
0 голосов
/ 02 марта 2020

У меня есть SmartTable (https://sapui5.hana.ondemand.com/# / api / sap.ui.comp.smarttable.SmartTable ) в сочетании с SmartFilterBar (https://sapui5.hana.ondemand.com/# / api / sap.ui.comp. smartfilterbar.SmartFilterBar ).

<VBox fitContainer="true">
                <!-- Smart Filter Bar -->
                <smartFilterBar:SmartFilterBar id="idSmartFilterBarTask" entitySet="ZI_Worklist" showClearOnFB="true" showClearButton="true"
                    persistencyKey="pk_LSZ_SmartFilterBarTask" liveMode="false" clear="onClear" enableBasicSearch="true">
                    <smartFilterBar:layoutData>
                        <FlexItemData id="idFilterBarTaskLayout" shrinkFactor="0"/>
                    </smartFilterBar:layoutData>
                </smartFilterBar:SmartFilterBar>
                <!-- Smart Table -->
                <smartTable:SmartTable id="idSmartTableTask" entitySet="ZI_Worklist" smartFilterId="idSmartFilterBarTask" tableType="TreeTable"
                    useExportToExcel="false" useTablePersonalisation="true" header="{i18n>tableTaskTitle}" showRowCount="false"
                    persistencyKey="pk_LSZ_SmartTableTask" enableAutoBinding="true" demandPopin="true" beforeRebindTable="onBeforeRebindTableTask"
                    class="sapUiResponsiveContentPadding">
                    <!-- Custom Toolbar -->
                    <smartTable:customToolbar>
                        <OverflowToolbar id="idSmartTableTaskToolbar" design="Transparent">
                            <ToolbarSpacer id="idSmartTableTaskToolbarSpacer"/>
                            <!-- table button start  -->
                            <Button id="idSmartTableTaskToolbarStart" iconFirst="true" icon="sap-icon://add" press="onPressTableTaskCreate"/>
                            <!-- table button delete  -->
                            <Button id="idSmartTableTaskToolbarDelete" iconFirst="true" text="{i18n>tableButtonTextDelete}" press="onPressTableTaskDelete"/>
                        </OverflowToolbar>
                    </smartTable:customToolbar>
                    <smartTable:layoutData>
                        <FlexItemData id="idSmartTableTaskLayout" growFactor="1" baseSize="0%"/>
                    </smartTable:layoutData>
                    <!-- treetable -->
                    <table:TreeTable id="idTableTask" selectionMode="Single" selectionBehavior="Row" rootLevel="0" ariaLabelledBy="title" rowActionCount="1"
                        visibleRowCountMode="Auto" rowSelectionChange="onRowSelectionChangeTable">
                        <table:layoutData>
                            <FlexItemData id="idTableTaskLayout" growFactor="1" baseSize="0%"/>
                        </table:layoutData>
                    </table:TreeTable>
                </smartTable:SmartTable>
            </VBox>

Я добавил обязательные аннотации TreeTable: LEVEL, PARENT_NODE, HIERARCHY_NODE, чтобы TreeTable корректно отображался: https://imgur.com/a/bGccybK

Я хочу иметь возможность фильтровать значение на всех четырех уровнях. Но он не фильтрует все уровни при фильтрации по полю. Stati c фильтр для TreeLevel всегда отправляется с запросом, и я не понимаю, почему: https://imgur.com/a/mHjzfHX Мне также не удалось избавиться от этого фильтра.

Если Я установил режим работы ODataModel на «Клиент». Стати c фильтр TreeLevel исчезает, и фильтрация работает. Но у этого есть недостаток: фильтруются только начальные загруженные строки.

Как правильно отфильтровать бэкэнд на всех уровнях?

Любая помощь очень важна!

...