Sapui5 每行绑定一个下拉列表,动态添加到sap.ui.table.table

Sapui5 每行绑定一个下拉列表,动态添加到sap.ui.table.table,sapui5,Sapui5,我已经创建了一个带有下拉控件的表。我正在表中动态添加行。我试图用JSONModel绑定下拉列表的表列,但其中存在一些挑战 var oTable = this.getView().byId("myTable"); this.items.push({ item1: "", item2: "", item3: "" }); this.oModelJson.setData(this.items); this.oTable.setModel(this.oModelJson); this.oTa

我已经创建了一个带有下拉控件的表。我正在表中动态添加行。我试图用JSONModel绑定下拉列表的表列,但其中存在一些挑战

var oTable = this.getView().byId("myTable");
this.items.push({
  item1: "",
  item2: "",
  item3: ""
});
this.oModelJson.setData(this.items);
this.oTable.setModel(this.oModelJson);
this.oTable.bindRows("/");
现在,MyItem1是视图中声明的下拉列表。在上述代码结束后,我尝试使用以下技术绑定我的表下拉列表:我的JSONModel是全局的,它包含数据。我能够成功地将下拉列表绑定到表外,但当我将下拉列表移动到表内时,它不绑定

var oDDL = this.byId("DropDown");
var oDDLTemplate = new sap.ui.core.Item({
  key: "{key}",
  text: "{Text}"
});
oDDL.setModel(this.oJson);
oDDL.bindAggregation("items", "/results", oDDLTemplate);
这是我的观点,桌子

<t:Table id="myTable"
  width="auto"
  noDataText="No Record Found"
  busyIndicatorDelay="{detailView>/lineItemTableDelay}"
  class="sapUiResponsiveMargin"
  selectionMode="MultiToggle"
  visibleRowCount="5"
>
  <t:extension>
    <l:HorizontalLayout>
      <Button icon="sap-icon://add" text="Row" press="addRow"/>
      <Button icon="sap-icon://delete" text="Row" press="fDeleteRow"/>
    </l:HorizontalLayout>
  </t:extension>
  <t:columns>
    <t:Column width="16rem">
      <Text text="Item 1"/>
      <t:template>
        <ComboBox id="DropDown"></ComboBox>
      </t:template>
    </t:Column>
  <t:Column width="8rem">
    <Text text="Item 2"/>
    <t:template>
      <ComboBox id="txt_itm2" ></ComboBox>
    </t:template>
  </t:Column>
  <t:Column width="8rem">
    <Text text="Item 3"/>
    <t:template>
      <ComboBox id="txt_itm3" ></ComboBox>
    </t:template>
  </t:Column>
</t:Table>

以下是一个简单的示例:

在上面的示例中,行最初是空的(
[]
)。绑定定义可以保留在视图中:


这样,我只需要在用户按下+按钮时增强现有模型数据,而不是每次调用
bindRows
bindAggregation

onAddPress:function(){ const model=this.getOwnerComponent().getModel();//JSONModel const currentRows=model.getProperty(“/”); const newRows=currentRows.concat(this.createEntry()); model.setProperty(“/”,新行); },

Hi,@boghyonhofmann,您的示例似乎只适用于JSON模型。有可能将其用于OData模型吗?@zygimantus方法是相同的;您总是将新对象/实体添加到模型(而不是直接添加到UI)。在ODataModel的情况下,适当的API是
createEntry
,如回答中所述:嗨,@BoghyonHoffmann我有一个绑定到下拉列表的模型,我需要根据下拉列表中的选择从该模型中获取多个值。我该怎么做?