修改sap.ui.table.Table中的实体

时间:2017-01-23 09:18:58

标签: sapui5

我想在某一行中设置一个复选框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>

1 个答案:

答案 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());
    }
}