Sapui5 在组合的两个sap.m.Table列上应用sap.ui.model.Filter
两列Sapui5 在组合的两个sap.m.Table列上应用sap.ui.model.Filter,sapui5,Sapui5,两列firstName和lastName。 如何使用绑定的过滤器方法,以便某人输入John Doe的搜索字段中的查询保留firstName+“+lastName串联匹配的记录 注意:我是在客户端操作模式下执行此操作的,因此请不要使用后端筛选解决方案。正确的解决方案是使用自定义筛选器,正如@Andrii所指出的 因此,我们可以创建一个自定义筛选器,该筛选器将根据从中返回的布尔值为表中的每一行运行 自定义过滤器将在屏幕上呈现一行。过滤器API: 下面是运行代码: handleSearch: func
firstName
和lastName
。
如何使用绑定的过滤器
方法,以便某人输入John Doe
的搜索字段中的查询保留firstName
+“
+lastName
串联匹配的记录
注意:我是在客户端操作模式下执行此操作的,因此请不要使用后端筛选解决方案。正确的解决方案是使用自定义筛选器,正如@Andrii所指出的 因此,我们可以创建一个自定义筛选器,该筛选器将根据从中返回的布尔值为表中的每一行运行 自定义过滤器将在屏幕上呈现一行。过滤器API: 下面是运行代码:
handleSearch: function(e) {
var sQuery = e.getParameter('query'); // Fecth search term
var oCustomFilter = new sap.ui.model.Filter({
path:"", // this refers to binding path of each row.
test: function(oNode) {
var oValue = oNode.fname + " " +oNode.lname;
if (oValue.indexOf(sQuery) !== -1) {
return true; // row will be rendererd
} else {
return false; // row will not be rendererd
}
}
});
var oBinding = this._table.getBinding('items');
oBinding.filter(oCustomFilter);
}
表:
<Table
id='idTable'
items= "{/}"
>
<columns>
<Column
headerText='FName'
/>
<Column
headerText='LName'
/>
</columns>
<items>
<ColumnListItem>
<cells>
<Text
text='{fname}'
/>
<Text
text='{lname}'
/>
</cells>
</ColumnListItem>
</items>
</Table>
如果您需要任何其他信息,请告诉我。:) 正确的解决方案是使用定制过滤器,正如@Andrii所指出的那样 因此,我们可以创建一个自定义筛选器,该筛选器将根据从中返回的布尔值为表中的每一行运行 自定义过滤器将在屏幕上呈现一行。过滤器API: 下面是运行代码:
handleSearch: function(e) {
var sQuery = e.getParameter('query'); // Fecth search term
var oCustomFilter = new sap.ui.model.Filter({
path:"", // this refers to binding path of each row.
test: function(oNode) {
var oValue = oNode.fname + " " +oNode.lname;
if (oValue.indexOf(sQuery) !== -1) {
return true; // row will be rendererd
} else {
return false; // row will not be rendererd
}
}
});
var oBinding = this._table.getBinding('items');
oBinding.filter(oCustomFilter);
}
表:
<Table
id='idTable'
items= "{/}"
>
<columns>
<Column
headerText='FName'
/>
<Column
headerText='LName'
/>
</columns>
<items>
<ColumnListItem>
<cells>
<Text
text='{fname}'
/>
<Text
text='{lname}'
/>
</cells>
</ColumnListItem>
</items>
</Table>
如果您需要任何其他信息,请告诉我。:) 您需要第三个不可见列,只需将这两个字段绑定到一个列中。然后在此字段上应用筛选器。使用AND操作的两个筛选器对象如何?(当然,在应用之前需要拆分搜索值)@zyrex不起作用,AFAIK过滤是在绑定上完成的,而不是在列中的值上。但我将添加一个全名属性,并将其绑定到一个隐藏列。Thanks@AndriiNaumovych对于由多个部分组成的名称不起作用,因为您现在无法在何处拆分。使用自定义筛选函数如何?“test”?您需要第三个不可见列,只需将这两个字段绑定到一个列中即可。然后在此字段上应用筛选器。使用AND操作的两个筛选器对象如何?(当然,在应用之前需要拆分搜索值)@zyrex不起作用,AFAIK过滤是在绑定上完成的,而不是在列中的值上。但我将添加一个全名属性,并将其绑定到一个隐藏列。Thanks@AndriiNaumovych对于由多个部分组成的名称不起作用,因为您现在无法在何处拆分。使用自定义筛选函数如何?“测试”?