Datagrid generated column with link component

Hello Community,

I am trying to add a generated column with a link component as mentioned below.

grid.addGeneratedColumn(“name”, new DataGrid.ColumnGenerator<Entity, Component>() {
@Override
public Component getValue(DataGrid.ColumnGeneratorEvent event) {
Link link = componentsFactory.createComponent(Link.class);
link.setCaption(event.getItem().getName()); // set name property
link.setUrl(event.getItem().getURL()); // set url property
link.setTarget("_blank");
return link;
}
@Override
public Class getType() {
return Component.class;
} },1);

The column is displaying com.haulmont.cuba.web.gui.components.WebLink instead of caption and a link.

Regards,
Sanchit

Hi,

You need to set ComponentRenderer to the column:

generatedColumn.setRenderer(grid.createRenderer(ComponentRenderer.class));

Regards,
Gleb

1 Like