sapui5 - 从 m.table 中的属性获取路径
问题描述
我正在寻找一种方便的方法来从表格单元格中获取路径。
背景:需要实现一个搜索字段,允许过滤响应表的所有列。在这里,需要路径作为过滤器对象的参数。
XML 代码
<Table items="{path: 'modelName>pathPart1/pathPart2'}">
<headerToolbar>
<Toolbar>
<Title text="titleText"/>
<SearchField search="searchInTable"/>
</Toolbar>
</headerToolbar>
<columns>
<Column>
<Text text="column1"/>
</Column>
<Column>
<Text text="column2"/>
</Column>
</columns>
<ColumnListItem>
<Text text="{modelName>cellName1}"/>
<Text text="{modelName>cellName2}"/>
</ColumnListItem>
</Table>
控制器逻辑
searchInTable: function(event) {
var table = event.getSource().getParent().getParent();
var query = event.getParameters("query");
table.getBinding("items").filter(this.getFilters(table, query));
},
getFilters: function(table, query) {
var aFilters = [];
var items = table.getItems();
// Loop through items aggregation and populate filter object
jQuery.each(items, function(i, oItem) {
// Get path from cells (e.g. cellName1)
var sPath = oItem.mAggregations.cells[i].mBindingInfos.text.binding.sPath;
var sOperator = FilterOperator.EQ;
var sValue1 = query;
var oFilter = new Filter(sPath, sOperator, sValue1);
aFilters.push(oFilter);
});
return aFilters;
},
我们可以用更方便、更健壮的方法来替换这部分吗?
var sPath = oItem.mAggregations.cells[i].mBindingInfos.text.binding.sPath;
正如您所注意到的,我正在尝试接收sPath
整个对象的经过。但是,它并非在所有情况下都有效,因为对象的结构可能会发生变化。我敢打赌有更好的方法可用。但是,我在这里有点挣扎。
有任何想法吗?
编辑:我确实希望获得指向表中文本属性的路径。在此示例中,它将是:cellName2
解决方案
我现在正在打电话,所以我无法测试它,但它是这样的
oItem.getCells()[i].getBindingContext().getPath()
如果我没记错的话,getCells() 来自 ColumnListItem API。
其他两个来自 ODataListBinding API 或类似的东西......
如果您深入了解 API,您会发现它
编辑:我认为您应该在获取上下文时提供模型名称。但是我记不太清了...
oItem.getCells()[i].getBindingContext("modelName").getPath()
尝试两者,有和没有它......
EDIT2:这里有片段http://jsbin.com/votaxiyedi/edit?html,output
这就是你需要的:
oItem.getBindingContext("odata").getPath() + "/" + oItem.getCells()[0].getBinding("text").getPath();
推荐阅读
- django - 为什么我会得到不同的结果?
- jenkins - 如何在 DSL 脚本中嵌入 jenkins 管道
- reactjs - 在 React 中动画显示/隐藏表格行
- java - 单击时更改视图高度
- python - Karger 在 python 2.7 中的最小切割实现没有给出正确的切割
- c# - 仅将选定的列更改为自定义格式,而所有列在 WPF DataGrid 中保持不变?
- sql-server - 将数据插入另一个表时数据类型格式发生变化 (MICROSOFT SQL Server Management Studio)
- css - 如何检查网络字体是否免费且在浏览器中可用
- python - ValueError:发现样本数量不一致的输入变量:[12600, 4200]
- android - React Native Navigation v2 (wix) 禁用 TopBar