Skip to Content

Issue with Icontabbar binding to display in multiple icontabfilter

Hi All,

I'm working on Fiori-Like application. In Splitscreen, detail view has Icontabbar control with multiple IcontabFilter. When i bind the oData to the Icontabbar it shows only single icontabfilter and the other one is not visible in the view. how to overcome this. pls suggest some idea.

Code:

View.XML

<IconTabBar id="idIconTabBarcib" select="handleIconTabBarSelecta" items="{/PENDING_DETAILS_EMP_INFOSet}">

<items>

<IconTabFilter icon="sap-icon://customer-briefing" id="cb31a" visible="true">

<l:Grid> <l:content>

<Label text="Personnel Numb"/>

<ObjectNumber number="{EmpNo}"/> </l:content> </l:Grid>

<l:Grid> <l:content> <Label text="Personnel Sub Area"/>

<ObjectNumber number="{Psa}"/> </l:content> </l:Grid>

<l:Grid> <l:content> <Label text="Cost Center"/> <ObjectNumber number="{CostCentre1}"/> </l:content> </l:Grid>

</IconTabFilter>

<IconTabFilter icon="sap-icon://customer-briefing" id="cb31a" visible="true">

<l:Grid> <l:content>

<Label text="Personnel Area"/>

<ObjectNumber number="{EmpName}"/> </l:content> </l:Grid>

<l:Grid> <l:content> <Label text="Personnel Sub Area"/>

<ObjectNumber number="{Psa}"/> </l:content>

</l:Grid> <l:Grid>

<l:content> <Label text="Cost Center"/> <ObjectNumber number="{CostCentre}"/> </l:content> </l:Grid>

</IconTabFilter>

</items>

</IconTabBar>

Controller Page:

var pag=this.byId("idIconTabBarcib")

var oFilters = [new sap.ui.model.Filter("ImPernr", sap.ui.model.FilterOperator.EQ, EmpId), new sap.ui.model.Filter("ImWiid", sap.ui.model.FilterOperator.EQ, WrkId)]; var bnd = pag.getBinding("items").filter(oFilters);

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Feb 20, 2017 at 10:35 AM

    I think you are defining same id for both icontabfilter, remove that for both and check or remove/change for at least one, thats not needed i guess,

    id="cb31a"


    Thanks,

    Akhilesh

    Add comment
    10|10000 characters needed characters exceeded

    • Hi,

      There might be the chance that you are getting single record from backend. and

      I guess your XML template itself is wrong, only one tabFilter should be there in xml, Since, you are binding items to IconTabBar, so only one template should be there in xml and number of tabFilter will be created automatically as many number of records coming from backend. something like below:

      <IconTabBar id="idIconTabBarcib" select="handleIconTabBarSelecta" items="{/PENDING_DETAILS_EMP_INFOSet}">
          <items>
              <IconTabFilter icon="{iconFromBackend}" text="{text}" visible="true">
                  <l:Grid>
                      <l:content>
                          <Label text="Personnel Numb" />
                          <ObjectNumber number="{EmpNo}" />
                      </l:content>
                  </l:Grid>
                  <l:Grid>
                      <l:content>
                          <Label text="Personnel Sub Area" />
                          <ObjectNumber number="{Psa}" />
                      </l:content>
                  </l:Grid>
                  <l:Grid>
                      <l:content>
                          <Label text="Cost Center" />
                          <ObjectNumber number="{CostCentre1}" />
                      </l:content>
                  </l:Grid>
              </IconTabFilter>
          </items>
      </IconTabBar>
      

      and your data would be different like nested data, for each filter tab you will have another set of record in the main data.

      in order to bind different data set (entity) to each tabFilter, then your current use case is not correct, you can bind tabFilter indivisually but not into aggregation.

      pls check this basic example may help you.

      Thanks,

      Akhilesh