我想在某一行中设置一个复选框true(在后台)。
我使用sap.ui.table.Table ...示例:我有十个采购订单,我想在输入字段中写入一个数字(EBELN),当我按下"输入"表中的一个复选框(在行中,数字= EBELN)应修改为" True"而焦点也应放在这一行上。如何使用参数进行搜索,尤其是如何修改它?
编辑: 查看:
{
test: /\.css$/,
use: {
loader: 'css-loader',
options: { url: false }
}
}
onPress:
<Table id="tableItemsId" enableBusyIndicator="true" rows="{items>/results}"
selectionMode="None" visibleRowCount="12">
<toolbar>
<m:Toolbar>
<m:Input id="inEbeln"
placeholder="{i18n>Ebeln}" />
<m:Button text="{i18n>Ebeln}" press="onPress" />
</m:Toolbar>
</toolbar>
<columns>
<Column width="2rem">
<m:Label text="{i18n>Check}" />
<template>
<m:CheckBox
selected="{
path: '{items>Check}',
type: 'sap.ui.model.type.String'
}"
editable="false" />
</template>
</Column>
<Column width="6rem">
<m:Label text="{i18n>Ebeln}" />
<template>
<m:Text text="{items>Ebeln}" />
</template>
</Column>
答案 0 :(得分:0)
我刚刚创建了一个小example。在事件处理程序中,它循环遍历所有行,将输入的值与行中的值进行比较,并相应地设置复选框:
onPress : function(event) {
// this gets the value of the input field
let value = this.byId("inEbeln").getValue();
if (!value || value.length === 0) {
return;
}
// loop through all rows and compare the entered value with the value in the row
let rows = this.byId("table").getRows();
for (let i = 0; i < rows.length; i += 1) {
let row = rows[i];
let cells = row.getCells();
// cells[0] contains the Checkbox
// cells[1] contains the Text with Ebeln
cells[0].setSelected(value === cells[1].getText());
}
}