SAPUI5: добавить новый «ViewSettingsItem» в ViewSettingsDialog во фрагменте - PullRequest
0 голосов
/ 30 октября 2018

В настоящее время у меня есть фрагмент для сортировки. Когда пользователь нажимает на кнопку сортировки. Отображается следующий экран.

enter image description here

Однако мне нужно добавить, что я должен динамически добавлять «ViewSettingsItem» в "ViewSettingsDialog" во фрагменте. Я понятия не имею, как этого добиться, потому что для фрагмента. XML. У нас нет контроллера. Где мы должны динамически добавить новый «ViewSettingsItem»?

Ниже приведен пример кода для fragmen.xml

<core:FragmentDefinition id="customerSortDialogFragment" xmlns:core="sap.ui.core" xmlns="sap.m">
    <ViewSettingsDialog confirm="onSortDialogConfirmed" id="sortingViewSettingsDialog">
        <sortItems>
            <ViewSettingsItem id="idCUSTOMER_ID" key="CUSTOMER_ID" selected="true" text="Customer ID"/>
            <ViewSettingsItem id="idCUSTOMER_NAME" key="CUSTOMER_NAME" text="Customer Name"/>
            <ViewSettingsItem id="idADDRESS_LINE_1" key="ADDRESS_LINE_1" text="Address Line 1"/>
            <ViewSettingsItem id="idADDRESS_LINE_2" key="ADDRESS_LINE_2" text="Address Line 2"/>
            <ViewSettingsItem id="idPRIVATE_NUMBER" key="PRIVATE_NUMBER" text="Private Number"/>
        </sortItems>
    </ViewSettingsDialog>
</core:FragmentDefinition>

1 Ответ

0 голосов
/ 01 ноября 2018

Даже если у фрагмента нет контроллера, вы видите confirm="onSortDialogConfirmed", этот метод нужно где-то реализовать, верно? Хорошо, это делается в контроллере представления, где вы вызываете фрагмент.

В том же контроллере вы можете получить экземпляр ViewSettingsDialog и управлять им, как и любым другим элементом управления.

Проверьте этот пример открытия фрагмента диалога и это код здесь .

В вашем сценарии вы можете попробовать следующее в методе контроллера, который открывает фрагмент (см. Пример ссылки выше)

//Get the dialog instance
var oDialog = sap.ui.xmlfragment(this.getView().getId(), "path.of.your.fragment", this);
// connect dialog to view (models, lifecycle)
this.getView().addDependent(oDialog);
//Create a Sort Item and add it to the dialog
var oCustomSortItem = new sap.m.ViewSettingsItem({text:"New settings item"})
oDialog.addSortItem(oCustomSortItem);
oDialog.open();

ViewSettingsDialog документация

Документация ViewSettingsItem

...