过滤SAP UI5模型中的布尔值

时间:2016-04-25 11:16:39

标签: sapui5

我有一个SAP UI5表。该列的一个给我布尔值

enter image description here

我想在此专栏中使用过滤器。 我的对话框视图代码是:

            <ViewSettingsFilterItem
            text="Module Added"
            key="moduleAdded"
            multiSelect="false">
            <items>
                <ViewSettingsItem text="true" key="moduleAdded___EQ___true___X" />
                <ViewSettingsItem text="false" key="moduleAdded___EQ___false___X" />
            </items>
        </ViewSettingsFilterItem>

我的控制器代码:

var aFilters = [];
        jQuery.each(mParams.filterItems, function (i, oItem) {
            var aSplit = oItem.getKey().split("___");
            var sPath = aSplit[0];
            var sOperator = aSplit[1];
            var sValue1 = aSplit[2];
            var sValue2 = aSplit[3];
            var oFilter = new sap.ui.model.Filter(sPath, sOperator, sValue1, sValue2);

            aFilters.push(oFilter);
        });
        oBinding.filter(aFilters);

此代码适用于整数和字符串值,但为什么它不适用于布尔值?

请建议, 三江源

2 个答案:

答案 0 :(得分:0)

目前,您传递的是字符串而不是布尔值,最终导致布尔值无效。

当前值:

var sValue1 = aSplit[2]; // contains a string with value "true" in 1st Loop

你需要解析它

if (sValue1 === "true") {
 sValue1 = true; // now it is boolean and should work
} else { 
 sValue1 = false;
}

getKey():@ return包含字符串 https://openui5.hana.ondemand.com/docs/api/symbols/sap.ui.core.Item.html#getKey

答案 1 :(得分:0)

试试这个:

var sValue1 = aSplit[2] === "true" ? true : false;