Jmix1 DataGrid DetailsGenerator刷新问题

因为我的Detail显示的内容是关联entity的,所以想知道当entity的属性值发生改变的时候,怎么刷新Detail的内容?

如果是手动隐藏详情再显示详情,详情的内容会更新

如果用编程的方式
table.setDetailsVisible(e, false);
table.setDetailsVisible(e, true);
这样不能刷新详情

@liren.xu 试了试,好像确实不行,我在英文论坛提了个问题,等回复

按照英文论坛的回复,我刚刚试了试,下面的代码是可以的:

  protected Component getContent(Veterinarian entity) {
      Label<String> content = uiComponents.create(Label.TYPE_STRING);
      content.setHtmlEnabled(true);
      content.setId("contentLabel");

      Label<String> lastNameLabel = uiComponents.create(Label.TYPE_STRING);
      lastNameLabel.setValueSource(new ContainerValueSource<>(veterinariansDc, "lastName"));

      StringBuilder sb = new StringBuilder();
      sb.append("<b>Full name</b><br>")
              .append(entity.getFirstName() + " " + lastNameLabel.getRawValue() + "<br><br>")
              .append("<b>Country</b><br>")
              .append("country" + "<br><br>")
              .append("<b>City</b><br>")
              .append("city");

      content.setValue(sb.toString());

      return content;
  }

  @Subscribe(id = "veterinariansDc", target = Target.DATA_CONTAINER)
  public void onVeterinariansDcItemChange(final InstanceContainer.ItemChangeEvent<Veterinarian> event) {
      // 这两个还是需要的。
      veterinariansTable.setDetailsVisible(event.getItem(), false);
      veterinariansTable.setDetailsVisible(event.getItem(), true);
  }