如何获取sap.ui.table.Table组件选中行的Column2列对应数值
解决方案
我们以下表为例:
| Column1 | Column2 | Column 3 |
|---|---|---|
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
你已经通过MyTable.getSelectedIndex()获取到选中行索引,有两种常用方式获取对应行Column2列的数值:
方法1:从绑定模型获取(推荐)
直接从表格绑定的数据源取值,是SAPUI5官方推荐的最佳实践,不受表格渲染逻辑影响,稳定性更高:
// 取选中行索引 const selectedIndex = MyTable.getSelectedIndex(); // 边界判断:没有选中行时直接返回 if (selectedIndex === -1) { // 可在这里补充未选中行的提示逻辑 return; } // 获取表格行绑定的数据集 const rowBinding = MyTable.getBinding("rows"); // 根据索引取对应行的模型数据 const rowData = rowBinding.getContexts()[selectedIndex].getObject(); // 替换为你Column2列绑定的实际模型字段名,即可拿到对应值 const column2Value = rowData.你的Column2绑定字段名;
注意:上述代码中的你的Column2绑定字段名需要替换为你给Column2列配置的绑定字段实际名称,比如绑定字段为col2就写rowData.col2
方法2:从单元格控件直接取值
如果你的表格没有做模型绑定,或者需要取单元格渲染后的显示值,可以用这个方法:
const selectedIndex = MyTable.getSelectedIndex(); if (selectedIndex === -1) { return; } // 取对应索引的行控件实例 const targetRow = MyTable.getRows()[selectedIndex]; // Column2是第二列,索引从0开始计数,所以取索引为1的单元格 const column2Cell = targetRow.getCells()[1]; // 根据单元格内控件类型调用对应取值方法,Text控件用getText(),Input控件用getValue() const column2Value = column2Cell.getText();
注意:如果Column2列的单元格内使用的不是Text控件,需要对应调整取值方法
内容的提问来源于stack exchange,提问作者Adriatic
相关产品推荐
相关产品推荐

