首页 > 解决方案 > 在 SAPUI5 SmartTable on event beforeRebindTable 添加一些过滤器

问题描述

我的要求是在我的控制器的 smartTable 上放置一些过滤器。

在事件 beforeRebindTable 中,我使用以下代码放置过滤器,该代码运行良好。

onBeforeRebindTable: function (oEvent) {
  var oBindingParams = oEvent.getParameter("bindingParams");
  statFilter = new sap.ui.model.Filter("Claim_TYPE", "EQ", "1234");
  oBindingParams.filters.push(statFilter);
} 

但问题是当用户再次点击过滤器上的表列时,我在上面的代码中添加的过滤器在选择对话框中不可见。用户可能需要删除此过滤器,如果它在对话框中不可见,他们将无法删除它。

我无法建立为什么对话框没有更新的链接,或者我应该在其他地方添加它。谢谢索纳尔。

标签: sapui5

解决方案


    onBeforeRebindTable: function (oEvent) {
        var oSmartTable = oEvent.getSource();
        if (this._isOnInit == null) this._isOnInit = true;
        if (this._isOnInit) {
            oSmartTable.applyVariant(
                {
                    filter: {
                        filterItems: [{
                            columnKey: "YourSelectedColumn",
                            exclude: false,
                            operation: "EQ",
                            value1: "SomeEnteredValue",
                            value2: ""
                        }]
                    }
                }

            );
            this._isOnInit = false;
        }
    }


推荐阅读