Javascript 如何在sap.suite.ui.commons.Timeline中将sap.m.viewsettings对话框用作自定义筛选器?

Javascript 如何在sap.suite.ui.commons.Timeline中将sap.m.viewsettings对话框用作自定义筛选器?,javascript,filter,sapui5,Javascript,Filter,Sapui5,目前,我想在sap.suite.ui.commons.Timeline中集成一个多方面的过滤器,如中所述。指导方针说,必须使用sap.m.viewsettings对话框 通过查看,可以看出存在一个聚合customFilter,但是内部使用的控件需要有一个openBy函数,调用该函数可以打开customFilter弹出/对话框 我现在的问题是,sap.m.viewsettings对话框没有openBy函数,而只有open()函数(因为它是一个对话框,所以会反映它) 如何使用ViewSettings

目前,我想在sap.suite.ui.commons.Timeline中集成一个多方面的过滤器,如中所述。指导方针说,必须使用sap.m.viewsettings对话框

通过查看,可以看出存在一个聚合customFilter,但是内部使用的控件需要有一个openBy函数,调用该函数可以打开customFilter弹出/对话框

我现在的问题是,sap.m.viewsettings对话框没有openBy函数,而只有open()函数(因为它是一个对话框,所以会反映它)

如何使用ViewSettings对话框正确实现多方面过滤器


非常感谢

您有三种选择:

  • 使用不同的Popover(例如)
  • 通过将
    showtimfilter
    showtimetfilter
    设置为false来隐藏筛选栏按钮,然后添加您自己的按钮以及所需的逻辑:

    oTimeline.getHeaderBar().addContent(new Button({
        press: function () {
          oViewSettingDialog.open();
        }
    });
    
  • 您可以扩展
    sap.m.viewsettings对话框
    ,添加一个
    openBy
    方法,该方法只需调用
    open
    。它可以静态完成:

    var CustomViewSettingDialog = ViewSettingDialog.extend("my.namespace.CustomViewSettingDialog", {
      openBy: function () {
        this.open();
      }
    });
    
    或在运行时:

    var oViewSettingDialog = new ViewSettingDialog(...);
    oViewSettingDialog.openBy = function () {
      this.open();
    }
    

  • 非常感谢您的概述。我担心答案是这样的:-)我的希望是,到目前为止我错过了一些官方信息…如果它仍然对您有用,从1.58 ViewSettingDialog开始,所有具有open方法的组件都将得到开箱即用的支持。