SAPUI5:在oData.read之后刷新表内容

时间:2016-09-02 13:36:49

标签: odata refresh sapui5 sap.m

我正在构建一个包含两个文本框,一个按钮和一个表的应用程序。按下按钮时,过滤器数组由文本框的内容组成,并在读取请求中发送到我的oData服务。现在,当返回一条记录时(如控制台中所示),该表将不会更新。我错过了什么?

这是表格:

<Table id="PLTab" items="{/ORDSET}">
  <headerToolbar>
    <Toolbar>
      <Title text="Planned Orders" level="H2" />
    </Toolbar>
  </headerToolbar>
  <columns>
    <Column>
      <Text text="Product" />
    </Column>
    <Column>
      <Text text="Planned Order" />
    </Column>
    <Column>
      <Text text="Production Planner" />
    </Column>
  </columns>
  <items>
    <ColumnListItem>
      <cells>
        <ObjectIdentifier title="{Maktx}" text="{Matnr}" />
        <Text text="{Ordno}" />
        <Text text="{Name}" />
      </cells>
    </ColumnListItem>
  </items>
</Table>

这是控制器的相关部分:

onInit: function() {
    var oModel = this.getOwnerComponent().getModel("path");
    oModel.refresh(true);
    this.getView().setModel(oModel);
  },


  openOrders: function(oEvent) {
    var PLFilters = [];
    PLFilters.push(new sap.ui.model.Filter({
      path: "Matnr",
      operator: sap.ui.model.FilterOperator.EQ,
      value1: this.getView().byId("Product").getValue()
    }));
    PLFilters.push(new sap.ui.model.Filter({
      path: "Locno",
      operator: sap.ui.model.FilterOperator.EQ,
      value1: this.getView().byId("Location").getValue()
    }));


    var oModel = this.getOwnerComponent().getModel("path");
    oModel.read("/ORDSET", {
      filters: PLFilters,
      success: function(oData, oResponse) {
        console.log(oData);
      }
    });
  }

谢谢&amp;的问候,

最高

1 个答案:

答案 0 :(得分:0)

var oModel = this.getOwnerComponent().getModel("path");

使用名为“path”的模型读取数据,但在XML View中使用默认模型(未命名)。

尝试更改为

var oModel = this.getOwnerComponent().getModel();