无法绑定表headerText

时间:2018-12-03 10:44:25

标签: sapui5

我正在寻找将数据绑定到表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);

2 个答案:

答案 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 );

}