Sapui5 每行绑定一个下拉列表,动态添加到sap.ui.table.table
我已经创建了一个带有下拉控件的表。我正在表中动态添加行。我试图用JSONModel绑定下拉列表的表列,但其中存在一些挑战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
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我有一个绑定到下拉列表的模型,我需要根据下拉列表中的选择从该模型中获取多个值。我该怎么做?