cancel
Showing results for 
Search instead for 
Did you mean: 

Populate values of Combobox based on property in a TreeTable on load event

Former Member
0 Kudos

Hello,


We have an implementation requirement for our Web Tooling project.

Please find attached screenshots.

We are trying to parse a WSDL and display the json data (mentioned in Snippix link) in a TreeTable.

On basis of value of “description” property, the combobox values are bound in the “Type” column.

For example:

Description                      Type

complexType                  Entity Type/Complex Type

parameter                        Edm types (String,Int,Float)

One issue which I observe is that the TreeTable control internally creates child nodes every time it encounters {} in data object being bound to it. Thus creating empty child nodes.

Below is my implementation.

I had created 2 Array objects as below:

var arr1 = [

                                             {PropertyValueName : "EntityType"},

                                             {PropertyValueName : "ComplexType"}

                                                                   ];

                                var arr2 = [

                                             {PropertyValueName : "String"},

                                             {PropertyValueName : "Int"},

                                             {PropertyValueName : "Float"}

                                           ];

And to bind it to a column of TreeTable, I added a property “Type” to each element in the data object based on the “description” (complex Type or parameter).

for example:

                          "complexType" : {

                                                                                                                                "name" : "GetWeather",

                                                                                                                                "description" : "complexType",

                                                                                                                                "checked" : true,

                                                                                                                                "type" : arr1,

                                                                                                                                "enabled" : true,

                                                                                                                                "key" : false,

                                                                                                                                "complexparamaters" : [ {

                                                                                                                                                "name" : "CityName",

                                                                                                                                                "description" : "complex parameter",

                                                                                                                                                "checked" : true,

                                                                                                                                                "type" : arr2,

                                                                                                                                                "key" : true,

                                                                                                                                                "enabled" : true

                                                                                                                                }, {

                                                                                                                                                "name" : "CountryName",

                                                                                                                                                "description" : "complex parameter",

                                                                                                                                                "checked" : true,

                                                                                                                                                "type" : arr2,

                                                                                                                                                "key" : false,

                                                                                                                                                "enabled" : true

                                                                                                                                } ]

Hence the expected behavior is achieved but empty child nodes created in the TreeTable ruin the UI.


Also I tried another way to implement "attachCellClick" event on TreeTable and bind the arrays dynamically but actually we need the combobox values populated on load of TreeTable itself.


here is the link to the snippet (in snippix):
http://veui5infra.dhcp.wdf.sap.corp:8080/snippix/snippets/38235

To launch the page directly, go to:
http://veui5infra.dhcp.wdf.sap.corp:8080/snippix/snippets/38235.html


Is there any way / event which can be triggered on load of TreeTable and takes care of populating the values of Combobox based on "description"?

Can you please help me here? Your help is much appreciated


Thanks & Regards,

Shreya

Accepted Solutions (0)

Answers (1)

Answers (1)

saivellanki
Active Contributor
0 Kudos

Hi Shreya,

Use addEventDelegate method of tree table  -


var oTable = new sap.ui.table.TreeTable();

oTable.addEventDelegate({                                           

  onAfterRendering: function(){

          // Your Logic

  }

}, oTable);

Regards,

Sai Vellanki.