Skip to Content
0
Jul 08, 2015 at 04:53 AM

Error When Binding Analytical Table

400 Views

I run into an error when binding a Analytical Table. The console reports "Uncaught TypeError: B.attachContextChange is not a function". Is it a bug of the control?

Here is my code:


// create the DataTable control
          var oTable = new sap.ui.table.AnalyticalTable({
           width : "auto",
           visible: true
        });
        
          
          // define the Table columns
          var oControl = new sap.ui.commons.TextView({text:"{lastName}"}); // short binding notation
          oTable.addColumn(new sap.ui.table.AnalyticalColumn({label: new sap.ui.commons.Label({text: "Last Name"}), template: oControl, sortProperty: "lastName", filterProperty: "lastName", width: "100px"}));
          oControl = new sap.ui.commons.TextField().bindProperty("value", "name"); // more verbose binding notationt
          oTable.addColumn(new sap.ui.table.AnalyticalColumn({label: new sap.ui.commons.Label({text: "First Name"}), template: oControl, sortProperty: "name", filterProperty: "name", width: "80px"}));
          oControl = new sap.ui.commons.CheckBox({checked:"{checked}"});
          oTable.addColumn(new sap.ui.table.AnalyticalColumn({label: new sap.ui.commons.Label({text: "Checked"}), template: oControl, sortProperty: "checked", filterProperty: "checked", width: "75px", hAlign: "Center"}));
          oControl = new sap.ui.commons.Link({text:"{linkText}", href:"{href}"});
          oTable.addColumn(new sap.ui.table.AnalyticalColumn({label: new sap.ui.commons.Label({text: "Web Site"}), template: oControl, sortProperty: "linkText", filterProperty: "linkText"}));
          //oControl = new sap.ui.commons.RatingIndicator({value:"{rating}"});
          oControl = new sap.ui.commons.TextField().bindProperty("value", "rating");
        var measure = oTable.addColumn(new sap.ui.table.AnalyticalColumn({label: new sap.ui.commons.Label({text: "Rating"}), template: oControl, sortProperty: "rating", filterProperty: "rating"}));
      
          
          
          // create some local data
          var aData = [
               {lastName: "Dente", name: "Al", checked: true, linkText: "www.sap.com", href: "http://www.sap.com", rating: 4},
               {lastName: "Friese", name: "Andy", checked: true, linkText: "https://experience.sap.com/fiori", href: "https://experience.sap.com/fiori", rating: 2},
               {lastName: "Mann", name: "Anita", checked: false, linkText: "http://www.saphana.com/", href: "http://www.saphana.com/", rating: 3}
          ];

          console.log(oTable);
          
          // create a JSONModel, fill in the data and bind the Table to this model
          var oModel = new sap.ui.model.json.JSONModel();
          oModel.setData({modelData: aData});
          oTable.setModel(oModel);
          oTable.bindRows("/modelData");

          console.log(oTable);
          
          // finally place the Table into the UI
          oTable.placeAt("content");