Question

I have this fragment retrieve by this page https://openui5.hana.ondemand.com/explored.html#/sample/sap.m.sample.TableViewSettingsDialog/code

<core:FragmentDefinition
  xmlns="sap.m"
  xmlns:core="sap.ui.core">
  <ViewSettingsDialog
    confirm="handleConfirm" id='viewSettingsDialogId'>

    <sortItems id="sortItemsId">

      <!-- <ViewSettingsItem text="Product" key="Name" selected="true" />
      <ViewSettingsItem text="Supplier" key="SupplierName" />
      <ViewSettingsItem text="Weight" key="WeightMeasure" />
      <ViewSettingsItem text="Price" key="Price" /> -->
    </sortItems>

  </ViewSettingsDialog>
</core:FragmentDefinition>

I want insert manually the sortItems in the control (or by data-binding in the xml-View). How can I do it?

I try to do it by code in my controller:

//IF CLICK ON SETTINGS BUTTON
    handleViewSettingsDialogButtonPressed: function (oEvent) {
        if (!this._oDialog) {
          this._oDialog = sap.ui.xmlfragment("apps.appIntra.fragment.settingDialog", this);
        }
        // toggle compact style
        jQuery.sap.syncStyleClass("sapUiSizeCompact", this.getView(), this._oDialog);
        this._oDialog.open();

        var element=sap.ui.getCore().byId("sortItemsId");

        this.byId('sortItemsId').addSortItem(new sap.m.ViewSettingsItem({text:"field1", key:"Price"}));
        this.byId('sortItemsId').addSortItem(new sap.m.ViewSettingsItem({text:"field2", key:"PLUTO"}));
      },

But it not work...

I see this guide http://scn.sap.com/community/developer-center/front-end/blog/2014/02/20/sapui5-dialogwith-businesscard-as-xml-fragment-along-with-controller but if I use

var element=sap.ui.getCore().byId("sortItemsId");

element value is undefined

Was it helpful?

Solution

The addSortItem is a method that works on the ViewSettingsDialog and not on sortItems.

Therefore, as you have already provided the id viewSettingsDialogId for the ViewSettingsDialog control, in you controller you can do the following,

   var oViewSettingsDialog = sap.ui.getCore().byId("viewSettingsDialogId");
   oViewSettingsDialog.addSortItem(new sap.m.ViewSettingsItem({text:"field1",
                                   key:"Price"}));
    /* and so on... */

This would add the sort items into the sortItems list.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top