在 sap.ui.Table 中更改行绑定模板
Change template of row binding in sap.ui.Table
我有一个 sap.ui.table.Table,我想制作 editable。在 SAPUI5 示例中,我可以看到 SAP 在 sap.m.Table 的列列表项中将 m.Texts 替换为 m.Inputs。我有一个 sap.ui.table.Table,目前我不知道如何在控制器中更改 sap.ui.table.Table 的模板。我需要的是更改列或行的模板。我在视图中进行了绑定,例如:
<ui:columns>
<ui:Column>
<m:Label text="label"/>
<ui:template>
<m:Text text="{xx}"/>
</ui:template>
</ui:Column>
</ui:columns>
但我必须在控制器中定义模板。我试过以下:
var oTemplateTable = new sap.ui.table.Row({
cells: [
new sap.m.Text({
text: "{xxx}"
}),
// ... further cells per row
],
});
oTableRunC.bindRows({
path: sBindingPathRunC,
template: oTemplateTable
});
但这不起作用,因为我想我没有定义固定列。
我忘了定义什么?我的目标是将 sap.ui.table.Table 与控制器中的 bindRows 方法绑定,并在同一步骤中设置模板或我的行的 ui 元素。因此,我可以实现一种编辑 table 的方法,其中我将 m.Input 元素放入行中,以及一种显示数据方法,其中 m.Texts 仅显示 table 数据可见。
要更新模板,您应该可以在控制器中设置 sap.ui.table.Column 的模板聚合,例如
var oProductNameColumn = this.byId("ProductNameColumn");
oProductNameColumn.setTemplate(new sap.m.Input({value: "{ProductName}"}));
有关更多详细信息,请参阅模板聚合的文档。
https://ui5.sap.com/#/api/sap.ui.table.Column%23aggregations
我有一个 sap.ui.table.Table,我想制作 editable。在 SAPUI5 示例中,我可以看到 SAP 在 sap.m.Table 的列列表项中将 m.Texts 替换为 m.Inputs。我有一个 sap.ui.table.Table,目前我不知道如何在控制器中更改 sap.ui.table.Table 的模板。我需要的是更改列或行的模板。我在视图中进行了绑定,例如:
<ui:columns>
<ui:Column>
<m:Label text="label"/>
<ui:template>
<m:Text text="{xx}"/>
</ui:template>
</ui:Column>
</ui:columns>
但我必须在控制器中定义模板。我试过以下:
var oTemplateTable = new sap.ui.table.Row({
cells: [
new sap.m.Text({
text: "{xxx}"
}),
// ... further cells per row
],
});
oTableRunC.bindRows({
path: sBindingPathRunC,
template: oTemplateTable
});
但这不起作用,因为我想我没有定义固定列。 我忘了定义什么?我的目标是将 sap.ui.table.Table 与控制器中的 bindRows 方法绑定,并在同一步骤中设置模板或我的行的 ui 元素。因此,我可以实现一种编辑 table 的方法,其中我将 m.Input 元素放入行中,以及一种显示数据方法,其中 m.Texts 仅显示 table 数据可见。
要更新模板,您应该可以在控制器中设置 sap.ui.table.Column 的模板聚合,例如
var oProductNameColumn = this.byId("ProductNameColumn");
oProductNameColumn.setTemplate(new sap.m.Input({value: "{ProductName}"}));
有关更多详细信息,请参阅模板聚合的文档。 https://ui5.sap.com/#/api/sap.ui.table.Column%23aggregations