2017-01-27 74 views
0

我有一個UI5應用程序,其中我有一個在我的XMLView中定義的表。我正在使用OData調用後端來檢索數據。我按照以下方式進行。如何將OData直接綁定到XMLView

var oModel = new sap.ui.model.odata.ODataModel("url to data", true); 
      var inputModel = new JSONModel(); 

      oModel.read("/Products", 
       null, 
       null, 
       false, 
       function _OnSuccess(oData, response) { 
        var data = oData.results; 
        inputModel.setData(data); 
       }, 
       function _OnError(error) { 
        console.log(error); 
       }); 

      //set model(s) to current xml view 
      this.getView().setModel(inputModel, "inputModel"); 

我該如何做到這一點而不必創建JSON模型,我的意思是將oData直接綁定到XMLView。

我已經看到了正在做,但只能用JSView,e.g:

var oModel = new sap.ui.model.odata.v2.ODataModel("http://admin- think:88/sap/...",{useBatch : true}); 
    sap.ui.getCore().setModel(oModel,"model1"); 

// Create instance of table 
var oTable = new sap.ui.table.Table({ 
visibleRowCount : 6, 
    selectionMode: sap.ui.table.SelectionMode.Single, 
    navigationMode: sap.ui.table.NavigationMode.scrollbar, 
    selectionBehavior: sap.ui.table.SelectionBehavior.RowOnly 
}); 

// First column "Application" 
oTable.addColumn(new sap.ui.table.Column({ 
     label : new sap.ui.commons.Label({ 
      text : "APPLICATION", 
      textAlign : "Center", 

     }), 
     template : new sap.ui.commons.TextView({ 
      textAlign:"Center"}).bindProperty("text","model1>Applno"),    
})); 

// Bind model to table control  
oTable.bindRows("model1>/"); 

這樣,它似乎想了很多的工作。我如何做這樣的事情,但使用XML視圖?

+0

你閱讀文件? – matbtt

+0

我讀過一些(sapui5 api和其他來源),但我並沒有真正明白它的真實性。介意指向你指的是什麼文檔? – polaris

+0

我明白爲什麼有人會downvote這樣的問題,但恕我直言,UI5的文檔是一個沒有適當的搜索功能的叢林,這使得初學者很難。 @polaris:我建議花一些時間,並通過開發指南中的演練步驟:https://openui5.hana.ondemand.com/#docs/guide/3da5f4be63264db99f2e5b04c5e853db.html – boghyon

回答

1

XML代碼:

<mvc:View 
    controllerName="sap.m.sample.Table.Table" 
    xmlns:l="sap.ui.layout" 
    xmlns:mvc="sap.ui.core.mvc" 
    xmlns="sap.m"> 
    <Table id="idProductsTable" 
     inset="false" 
     items="{Data>/Table}"> 
     <columns> 
      <Column> 
       <Text text="Name" /> 
      </Column> 
      <Column> 
       <Text text="id" /> 
      </Column> 
     </columns> 
     <items> 
      <ColumnListItem> 
       <cells> 
        <Text 
         text="{Data>name}" /> 
        <Text 
         text="{Data>id}" /> 
       </cells> 
      </ColumnListItem> 
     </items> 
    </Table> 
</mvc:View> 

JS代碼:

onAfterRendering : function(){ 
    var oView = this.getView(); 
    var oTableJSON = new sap.ui.model.json.JSONModel(); 
    var fnSuccess = function(oEvent,oResponse){ 
     var Data = { 
      Table : oData.results, 
     }; 
     oTableJSON.setData(Data); 
     oView.byId("idProductsTable").setModel(oTableJSON,"Data"); 
    }; 
    oModel("/ProductionSet",null,null,true,fnSuccess,fnFail); 
} 
相關問題