Как иметь несколько диалогов в одном фрагменте - PullRequest
0 голосов
/ 26 марта 2020

Я работал над диалогом во фрагменте, для образца:

test.fragment. xml:

<core:FragmentDefinition
    xmlns="sap.m"
    xmlns:f="sap.ui.layout.form"
    xmlns:core="sap.ui.core">
    <Dialog title="P Selection" id='TestDialog1'>
      <content>
       <f:SimpleForm id="SimpleFormDisplay354"
            minWidth="1024"
            maxContainerCols="2"
            editable="false"
            layout="ResponsiveGridLayout"
            title=""
            labelSpanL="3"
            labelSpanM="3"
            emptySpanL="4"
            emptySpanM="4"
            columnsL="1"
            columnsM="1">
            <f:content>
                <Label text="DC" />  
                <Select id='Test1DCId'
                    forceSelection="false"
                    items="{
                        path: '/P/DC',
                        sorter: { path: 'Name' }
                    }">
                    <core:Item key="{key}" text="{value}" />
                </Select>
                <Label text="Quantity" />
                <Select id='Test1Quantity'
                    forceSelection="false"
                    items="{
                        path: '/P/Quantity',
                        sorter: { path: 'Name' }
                    }">
                    <core:Item key="{key}" text="{value}" />
                </Select>
            </f:content>
        </f:SimpleForm>
      </content>
      <buttons>
        <Button text="OK" press="onTest1OkButtonPress" />
      </buttons>
          <buttons>
        <Button text="Cancel" press="onTest1CancelButtonPress" />
      </buttons>
    </Dialog>
</core:FragmentDefinition>

В test.view. xml:

Часть представления, когда я хочу открыть диалоговое окно, выглядит так:

<m:Select id="Gu" items="{/Gu/GList}" change="onTestPress">
    <c:Item key="{key}" text="{value}" />
    <m:layoutData>
        <l:GridData span="L2 M2 S2"/>
    </m:layoutData>
</m:Select>

В test.Controller. js:

  onTestPress: function () {
    this.ADD = 'Yes';
    if (!this.byId("TestDialog1")) {
      this._oDialog = sap.ui.xmlfragment("test", this);
      this.getView().addDependent(this._oDialog);
    }
    this._oDialog.open();
  },

здесь аналогичным образом Как я могу использовать несколько диалогов в одном фрагменте? Возможно ли это?

Я пытался дать другой диалог с другим идентификатором TestDialog2,

И ввиду некоторых тестовых кнопок и при нажатии мне нужно открыть диалог, и я попытался как :

  onTestButtonPress: function () {
    this.ADD = 'Yes';
    if (!this.byId("TestDialog2")) {
      this._oDialog1 = sap.ui.xmlfragment("test1", this);
      this.getView().addDependent(this._oDialog1);
    }
    this._oDialog1.open();
  },

Но это работает не так, как ожидалось. Выдает ошибку Error: Error: adding element with duplicate id.....

Я искал Do c и много примеров, но я застрял, находя пример который показывает этот вариант использования ......

Любая помощь или образец или направляющая ссылка очень ценится, TIA

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...