我正在寻找将数据绑定到表headerText的方法,不幸的是我无法绑定到表头数据。
是否可以将数据绑定到表头。标题什么都没有显示“空白”,
<Table id="BoM"
headerText="{oModelBoM>/ItemCateg}"
class="sapUiResponsiveMargin" width="auto"
items="{path:'oModelBoM>/'}">
.js
getProductBoM : function(iNumber){
var sNumber = iNumber.toString();
while (sNumber.length < 18) {
sNumber = "0" + sNumber
}
// var vUriRead = "/ProductHead2BOM/?$filter=Material%20eq%20'" + sNumber + "'";
var vUriRead = "/ProductHeadSet('" + sNumber + "')/ProductHead2BOM";
var oResult;
this.initODataModel( );
this.oDataModel.read(vUriRead, null, null, false, function(oData, oResponse) {
oResult = oData;
}, function(oError) {
jQuery.sap.log.error("OData-Error in function getProductBoM (EntityProductHead2BOM)");
zplm_homepage.zplm_homepage.src.odata.displayRequestFailedMessage(oError);
});
return oResult;
controller.js
onInit : function() {
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
oRouter.attachRouteMatched(this.handleRouteMatched, this);
this.oModelBoM = new sap.ui.model.json.JSONModel();
this.getView().setModel(this.oModelBoM, "oModelBoM");
}
handleRouteMatched : function(oEvent) {
if (oEvent.getParameter("name") === "ListDetailView") {
var iNumber = oEvent.getParameter("arguments").number;
var oBoM = zplm_homepage.zplm_homepage.src.odata.getProductBoM(iNumber);
this.oModelBoM.setData(oBoM.results);
答案 0 :(得分:0)
好像您正在尝试将集合“ / ItemCateg”绑定到表的headerText,而它只需要一个字符串:see here
因此,您可以检查“ / ItemCateg”中返回的内容,并通过将属性绑定到headerText而不是数组来解决问题。您也可以在控制器中使用方法setHeaderText(“ someValue”);
此plunker显示了操作方法。
this.getView().byId("tableId").setHeaderText("yourValue");
此链接可以帮助您了解有关SAPUI5中的聚合与属性绑定的更多信息:binding types SAPUI5
让我知道这是否有帮助。
答案 1 :(得分:0)
好像我已经找到了解决上述问题的方法。我没有调用数组,而是直接将属性名称绑定到标题。
_onTableUpdateFinished: function(oEvent){
var sHeaderText = oEvent.getSource().getModel("oModelBoM").getData()[0].BomNumber
this.getView().byId("BoM").setHeaderText(sHeaderText );
}