Skip to Content
0
Jul 29, 2014 at 07:59 AM

Bind a collection within odata result

42 Views

Hi all,

is it possible to bind a collection within an odata result e.g. to a combobox, table etc?

I have the following code

var oModel = new sap.ui.model.odata.ODataModel("/odata");

sap.ui.getCore().setModel(oModel);

OData.read("/odata/DOM_PageInit", function (response) {

var oItemTemplate = new sap.ui.core.ListItem({

text: "{BuildingExtended}",

});

var oComboBox = new sap.ui.commons.ComboBox();

oComboBox.bindItems(response.BuildingList, oItemTemplate);

sap.ui.getCore().getControl("MyMatrix").createRow(new sap.ui.commons.Label({ text: "TestCombo", width: "100px" }), oComboBox);

}, function () {

alert("Read failed");

});

which results in the following output

{

"BuildingList":[

{

"BuildingID":3,"Global_Application_Userrole_ID":7,"UserRoleName":"Advanced Operator","BuildingExtended":"Extended Building 1"

},{

"BuildingID":47,"Global_Application_Userrole_ID":7,"UserRoleName":"Advanced Operator","BuildingExtended":"Extended Building 2"

},{

"BuildingID":9,"Global_Application_Userrole_ID":7,"UserRoleName":"Advanced Operator","BuildingExtended":"Extended Building 3"

}

],

"UserID":"MyUserid",

"UserDisplayName":"Lastname, Name"

}

and want to bind the BuildingList collection to the oComboBox, but I always get the error "Missing template or factory function for aggregation items of Element".

Any help is appreciated.

Thanks,

Oliver