SAPUI5 XML视图表颜色

ale*_*ire 1 sapui5

我从第一个SAPUI5应用程序开始,构建了一个响应表.现在我需要为特定行着色取决于模型中的值.

我正在使用XML-View.

我可以在控制器中定义一个方法吗?(它应该如何工作?)

Home.view.xml

<Table id="idMachineTable"
    inset="false"
    items="{
        path: 'machinemodel>/collection'
    }">
    <headerToolbar>
        <Toolbar>
            <Title text="Header" level="H2"/>
        </Toolbar>
    </headerToolbar>
    <columns>
        <Column
            width="12em">
            <Text text="Product" />
        </Column>
        <Column
            hAlign="Right">
            <Text text="Price" />
        </Column>
    </columns>
    <items>
        <ColumnListItem>
            <cells>
                <ObjectIdentifier
                    title="{machinemodel>test}"
                    text="{machinemodel>test}"/>
                <Text
                    text="{machinemodel>test}" />   
            </cells>
        </ColumnListItem>
    </items>
</Table>
Run Code Online (Sandbox Code Playgroud)

sch*_*del 7

您可以使用创建dom属性customdata属性来执行此操作.然后,您可以通过css选择要着色的行.

<ColumnListItem>
   <customData>
      <core:CustomData key="mydata" value="{machinemodel>status}" writeToDom="true" />
   </customData>
   <cells>
     ...
Run Code Online (Sandbox Code Playgroud)
<html:style type="text/css">
   tr[data-mydata="B"] {
     background-color: #faa !important;
   } 
</html:style>
Run Code Online (Sandbox Code Playgroud)

关于jsbin的完整示例.


Jas*_*_07 5

我喜欢@schnoebel提供的答案

这是另一种方法(jsbin),在Items绑定中定义更改处理程序

items="{
    path: 'machinemodel>/collection',
    events: {
      change: '.onItemsChange'
    }
}" 
Run Code Online (Sandbox Code Playgroud)

然后在处理程序中添加您的样式类

items="{
    path: 'machinemodel>/collection',
    events: {
      change: '.onItemsChange'
    }
}" 
Run Code Online (Sandbox Code Playgroud)