如何在网格列值为null时显示默认值?

时间:2017-09-27 14:52:59

标签: java vaadin vaadin8

我以这种方式定义列网格:

grid.addColumn(u -> u.getUsername()).setCaption("User");
grid.addColumn(u -> u.getUserFullname()).setCaption("Full Name");
grid.addColumn(u -> u.getLastLoggedInDate()).setCaption("Last login");
grid.addColumn(u -> Boolean.TRUE.equals(u.getBlocked()) ? 
    "YES" : "NO").setCaption("Blocked?");

上次登录 --> u.getLastLoggedInDate()列的值为空。以后会有价值。

如何定义默认文字以在显示之前显示 “尚未登录”

enter image description here

2 个答案:

答案 0 :(得分:5)

您可以设置TextRenderer

grid.addColumn(u -> u.getLastLoggedInDate(), new TextRenderer("Not logged yet")).setCaption("Last login");

答案 1 :(得分:3)

您的lambda u -> u.getLastLoggedInDate()可以修改为

u -> u.getLastLoggedInDate() == null ? 
  "Not logged in yet" : 
  u.getLastLoggedInDate()