我有一个SAP UI5表。该列的一个给我布尔值
我想在此专栏中使用过滤器。 我的对话框视图代码是:
<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);
此代码适用于整数和字符串值,但为什么它不适用于布尔值?
请建议, 三江源
答案 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;