0

在我的应用程序中,我使用的是 gwt 2.5.0 和 gxt 2.2.5。所以,我的 ColumnConfig 列带有这个渲染器:

column.setRenderer(new GridCellRenderer() {

            @Override
            public Text render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore listStore, Grid grid) {
                List<AccountGroupDto> accountGroups  = model.get(property);
                // some stuff here

                return groupsText;
            }
        });

但是当我尝试对我的列表 emenetns 做某事时,我得到了某种类型转换错误。我使用了一个调试器,看起来我的列表元素的类型是com.example.core.application.api.BeanModel_com_example_core_application_api_AccountGroupDto并且它不能被强制转换为com.example.core.application.api.AccountGroupDto,它应该是。

当我从 1.7 升级 gwt 和从 2.0.1 升级 gxt 时出现此错误

4

1 回答 1

0

将类型添加到您的 GridCellRenderer(根据您的错误,我假设您正在使用 BeanModel),因此请使用此类型:

column.setRenderer(new GridCellRenderer<BeanModel>() {

            @Override
            public Object render(BeanModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<BeanModel> store, Grid<BeanModel> grid) {
                // ...

渲染事件返回的模型是一个 BeanModel,现在,要获取原始元素,请使用模型的.getBean属性。

OriginalObjectType myObj = model.getBean();

现在您可以从 myObj 获取您的对象:

List<AccountGroupDto> accountGroups  = myObj.get(property);

希望这可以帮助。

于 2013-02-18T19:33:10.747 回答