我从第一个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)
您可以使用创建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的完整示例.
我喜欢@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)