如何将排序项添加到片段对话框中?

时间:2014-07-31 13:47:13

标签: sapui5

我通过此页面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>

我想手动插入控件中的sortItems(或者通过xml-View中的数据绑定)。 我该怎么办?

我尝试通过控制器中的代码来执行此操作:

//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"}));
      },

但它不起作用......

我看到了这个指南http://scn.sap.com/community/developer-center/front-end/blog/2014/02/20/sapui5-dialogwith-businesscard-as-xml-fragment-along-with-controller 但如果我使用

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

元素值未定义

1 个答案:

答案 0 :(得分:0)

addSortItem是一种适用于ViewSettingsDialog而非sortItems的方法。

因此,由于您已为viewSettingsDialogId控件提供了标识ViewSettingsDialog,因此您可以在控制器中执行以下操作,

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

这会将排序项添加到sortItems列表中。