答案 0 :(得分:3)
您可以使用以下两种方法之一来抑制零值的显示。如果您有许多表和/或特定数据类型的多列您希望此行为,则第一个方便。第二个用于特定的单个列。
formatPropertyValue
您可以覆盖自己的Table子类中的formatPropertyValue
方法。在每个表格单元格的显示期间调用此方法。通过测试Integer对象的大小写,您可以覆盖生成的字符串以便呈现给用户。
此方法适用于Vaadin 3.1至7.x版本。
此方法会影响该目标数据类型表中的所有列。
// A subclass of Vaadin Table to override formatting of Integer zero values.
public class NonZeroTable extends Table
{
@Override
protected String formatPropertyValue ( Object rowId , Object colId , Property property )
{
// Suppress display of zero-value Integers.
// If the Property is of type Integer with a Value of zero, handle it here.
// For other Property or Value, fallback to the default handling in the Table.
if ( property.getType() == Integer.class ) {
if ( property.getValue().equals( 0 ) ) {
return ""; // Return empty string, to suppress display of zero.
// return "\u2013"; // EN DASH
// return "\u2014"; // EM DASH
}
}
return super.formatPropertyValue( rowId , colId , property );
}
}
感谢Book of Vaadin Vaadin 7 example code集合提供此信息。
或者,您可能希望控制特定列的格式。如果是,请按照Converter页面Vaadin Wiki上的说明为该列提供Formatting Data In Table。
discussed here中的转换器为Book of Vaadin。