我在GWT 2.5中有一个CellList。每个单元格项目都是基于AbstractCell的类,并在UiBinder文件中定义。
如何为每件商品设置不同的款式?我希望有些人以“残疾”风格出现,而其他人则以“活跃”风格出现。
这是我的.ui.xml文件中的内容。我没有包括样式定义或UiBinder脚手架。
<div class="{style.contact}">
<div>
<div>
<img class="{style.photo}" src="{photo}"/>
</div>
<div class="{style.names}">
<div>
<p><ui:text from="{name}"/></p>
<p><ui:text from="{jobTitle}"/></p>
<p><ui:text from="{company}"/></p>
</div>
</div>
</div>
</div>
答案 0 :(得分:1)
您可以通过覆盖单元格的render()方法来实现添加样式名称,如下所示 -
@Override
public void render( com.google.gwt.cell.client.Cell.Context context, T value, SafeHtmlBuilder sb )
{
if( disable condition met )
{
// Apply disabled style
sb.appendHtmlConstant( "<div class='css-style-disabled' >"+ value+" </div>"
}
else
{
super.render( context, value, sb );
}
}
因此,将css-style-disabled
类添加到您的css文件中,开始设置样式。
答案 1 :(得分:1)
使用CellList.getRowElement()
:
cellList.getRowElement(3).addClassName("css-disabled");
cellList.getRowElement(4).addClassName("css-active");
答案 2 :(得分:0)
texasbruce的答案是解决方案,但如果你使用的是ListDataProvider,那么你需要修改对addClassName()的任何调用的时间:
new Timer() {
@Override
public void run() {
<< call cellList.getRowElement(0).addClassName("css-disabled") here >>;
}
}.schedule(1);