我想创建一个带有可编辑列的智能表。我正在使用metadata
注释来生成表格。表属性(editable = "true"
)使所有列都可编辑。在我的情况下,我想只编辑一个列。我尝试使用属性sap:updatable="true"
,但它没有用。有任何想法吗。
提前致谢。
这是我的观点:
<mvc:View
xmlns="sap.m"
xmlns:mvc="sap.ui.core.mvc"
controllerName="QuickStartApplication3.controller.View1"
xmlns:smartFilterBar="sap.ui.comp.smartfilterbar"
xmlns:smartTable="sap.ui.comp.smarttable">
<smartFilterBar:SmartFilterBar
id="smartFilterBar"
entityType="Product">
<smartFilterBar:controlConfiguration>
<smartFilterBar:ControlConfiguration
key="ProductId"
visibleInAdvancedArea="true"
preventInitialDataFetchInValueHelpDialog="true" >
</smartFilterBar:ControlConfiguration>
</smartFilterBar:controlConfiguration>
<smartFilterBar:controlConfiguration>
<smartFilterBar:ControlConfiguration
key="Name"
visibleInAdvancedArea="true"
preventInitialDataFetchInValueHelpDialog="true" >
</smartFilterBar:ControlConfiguration>
</smartFilterBar:controlConfiguration>
<smartFilterBar:controlConfiguration>
<smartFilterBar:ControlConfiguration
key="Category"
visibleInAdvancedArea="true"
preventInitialDataFetchInValueHelpDialog="true" >
</smartFilterBar:ControlConfiguration>
</smartFilterBar:controlConfiguration>
</smartFilterBar:SmartFilterBar>
<smartTable:SmartTable
id="smartTable_ResponsiveTable"
smartFilterId="smartFilterBar"
tableType="ResponsiveTable"
editable="false"
entitySet="Products"
useVariantManagement="false"
useTablePersonalisation="true"
header="Products"
showRowCount="true"
useExportToExcel="true"
enableAutoBinding="true">
</smartTable:SmartTable>
</mvc:View>
答案 0 :(得分:0)
我没有足够的代表对你的问题做一个简单的评论,但是你能提供一个你的观点样本,以便我能更准确地理解你的所作所为吗?
您是否尝试过使用sap.m.Table对象,如文档中所述: https://sapui5.hana.ondemand.com/explored.html#/sample/sap.m.sample.TableEditable/preview
为了只有某些单元格可编辑,您可以通过所使用的模板进行管理,请参阅下面我如何在控制器的onInit方法中更改模板:
onInit : function(evt) {
this.oModel = new JSONModel(jQuery.sap.getModulePath(
"sap.ui.demo.mock", "/products.json"));
this.oTable = this.getView().byId("idProductsTable");
this.getView().setModel(this.oModel);
this.oReadOnlyTemplate = this.getView().byId(
"idProductsTable").removeItem(0);
this.rebindTable(this.oReadOnlyTemplate, "Navigation");
this.oEditableTemplate = new sap.m.ColumnListItem({
cells : [ new sap.m.ObjectIdentifier({
title : "{Name}",
text : "{ProductId}"
}), new sap.m.Input({
value : "{Quantity}",
description : "{UoM}"
}), new sap.m.Input({
value : "{WeightMeasure}",
description : "{WeightUnit}"
}), new sap.m.Input({
value : "{Price}",
description : "{CurrencyCode}"
}) ]
});
如果您不使用此对象,请告诉我哪一个,我可以帮助。
答案 1 :(得分:0)
请查看“Preview”-screenshot and the metadata.xml。
如果设置editable =&#34; true&#34;会发生什么?并使用sap注释'Products'的所有属性:updatable =“false”, 除了可以编辑的单个属性,你设置为sap:updatable =“true”。
不要使用sap:updatable注释实体集'Products'(或确保sap:updatable =“true”)。