Java GXT编辑器网格不显示任何行

Java GXT编辑器网格不显示任何行,java,gwt,gxt,Java,Gwt,Gxt,我有一个带有编辑器网格的GXT布局容器。要在网格中显示的数据通过GWT-RPC服务获取,然后添加到网格的存储中。问题是网格从不显示任何内容,但我使用IDE的调试器检查列表是否为空(它包含一个元素) 以下是一些片段: 运输署署长: public class CompetitionWinnerDTO extends BaseModelData implements IsSerializable { public static enum Status implements IsSeriali

我有一个带有编辑器网格的GXT布局容器。要在网格中显示的数据通过GWT-RPC服务获取,然后添加到网格的存储中。问题是网格从不显示任何内容,但我使用IDE的调试器检查列表是否为空(它包含一个元素)

以下是一些片段:

运输署署长:

public class CompetitionWinnerDTO extends BaseModelData implements IsSerializable {

    public static enum Status implements IsSerializable {
        pending, approved, paid
    }

    public static class Property implements IsSerializable {
        public static final String COMPETITION_ID = "competitionId";
        public static final String COMPETITION_WINNER_ID = "competitionWinnerId";
        public static final String CONFIRM_DATE = "confirmDate";
        public static final String SITE_NAME = "siteName";
        public static final String PRIZE_NAME = "prizeName";
        public static final String PRIZE_VALUE = "prizeValue";
        public static final String PAID_DATE = "paidDate";
        public static final String WINNER_NAME = "winnerName";
        public static final String WINNER_QUOTE = "winnerQuote";
        public static final String WINNER_ADDRESS = "winnerAddress";
        public static final String WINNER_TOWN = "winnerTown";
    }

    private Status status;

    public CompetitionWinnerDTO() {
        setAllowNestedValues(false);
    }

    public int getCompetitionId() {
        return ((Integer) get(Property.COMPETITION_ID)).intValue();
    }

    public void setCompetitionId(int competitionId) {
        set(Property.COMPETITION_WINNER_ID, new Integer(competitionId));
    }

    public int getCompetitionWinnerId() {
        return ((Integer) get(Property.COMPETITION_WINNER_ID)).intValue();
    }

    public void setCompetitionWinnerId(int competitionWinnerId) {
        set(Property.COMPETITION_WINNER_ID, new Integer(competitionWinnerId));
    }

    public Date getConfirmDate() {
        return get(Property.CONFIRM_DATE);
    }

    public void setConfirmDate(Date confirmDate) {
        set(Property.CONFIRM_DATE, confirmDate);
    }

    public Date getPaidDate() {
        return get(Property.PAID_DATE);
    }

    public void setPaidDate(Date paidDate) {
        set(Property.PAID_DATE, paidDate);
    }

    public String getPrizeName() {
        return get(Property.PRIZE_NAME);
    }

    public void setPrizeName(String prizeName) {
        set(Property.PRIZE_NAME, prizeName);
    }

    public int getPriceValue() {
        return ((Integer) get(Property.PRIZE_VALUE)).intValue();
    }

    public void setPrizeValue(int prizeValue) {
        set(Property.PRIZE_VALUE, new Integer(prizeValue));
    }

    public String getSiteName() {
        return get(Property.SITE_NAME);
    }

    public void setSiteName(String siteName) {
        set(Property.SITE_NAME, siteName);
    }

    public Status getStatus() {
        return status;
    }

    public void setStatus(Status status) {
        this.status = status;
    }

    public String getWinnerName() {
        return get(Property.WINNER_NAME);
    }

    public void setWinnerName(String winnerName) {
        set(Property.WINNER_NAME, winnerName);
    }

    public String getWinnerAddress() {
        return get(Property.WINNER_ADDRESS);
    }

    public void setWinnerAddress(String winnerAddress) {
        set(Property.WINNER_ADDRESS, winnerAddress);
    }

    public String getWinnerTown() {
        return get(Property.WINNER_TOWN);
    }

    public void setWinnerTown(String winnerTown) {
        set(Property.WINNER_TOWN, winnerTown);
    }

    public String getWinnerQuote() {
        return get(Property.WINNER_QUOTE);
    }

    public void setWinnerQuote(String winnerQuote) {
        set(Property.WINNER_QUOTE, winnerQuote);
    }

}
在UI中初始化网格:

private final List<ColumnConfig> quoteApprovalConfig = new ArrayList<ColumnConfig>();
ColumnConfig column = new ColumnConfig(CompetitionWinnerDTO.Property.CONFIRM_DATE, "Date Confirmed", 100);

column.setRenderer(TableRenderers.dateTimeRenderer);
quoteApprovalConfig.add(column);

column = new ColumnConfig(CompetitionWinnerDTO.Property.PRIZE_NAME, "Prize", 100);
quoteApprovalConfig.add(column);

column = new ColumnConfig(CompetitionWinnerDTO.Property.WINNER_NAME, "Winner", 100);
        quoteApprovalConfig.add(column);

column = new ColumnConfig(CompetitionWinnerDTO.Property.WINNER_QUOTE, "Quote", 300);
final TextArea text = new TextArea();
text.setAllowBlank(false);
text.setPreventScrollbars(true);
column.setEditor(new CellEditor(text));
quoteApprovalConfig.add(column);

column = new ColumnConfig(CompetitionWinnerDTO.Property.WINNER_QUOTE, "Prize", 75);
column.setRenderer(new TableRenderers.CurrencyRenderer(DEFAULT_CURRENCY_CODE));
quoteApprovalConfig.add(column);

private final ColumnModel quoteApprovalColumns = new ColumnModel(quoteApprovalConfig);
private final EditorGrid<CompetitionWinnerDTO> quoteApprovalGrid = new EditorGrid<CompetitionWinnerDTO>(quoteApprovalStore, quoteApprovalColumns);
quoteApprovalGrid.setWidth(LeadIntelConstants.SITE_WIDTH - 25 - 15);
quoteApprovalGrid.setAutoWidth(true);
quoteApprovalGrid.setAutoHeight(true);
quoteApprovalGrid.setAutoExpandColumn(CompetitionWinnerDTO.Property.WINNER_NAME);
quoteApprovalGrid.setBorders(true);
quoteApprovalGrid.setStripeRows(true);
private final List quoteApprovalConfig=new ArrayList();
ColumnConfig column=new ColumnConfig(CompetitionWinnerDTO.Property.CONFIRM_DATE,“DATE CONFIRM”,100);
setRenderer(TableRenders.dateTimeRenderer);
quoteApprovalConfig.add(列);
column=新ColumnConfig(CompetitionWinnerDTO.Property.PRIZE_NAME,“PRIZE”,100);
quoteApprovalConfig.add(列);
column=新的ColumnConfig(CompetitionWinnerDTO.Property.WINNER\u NAME,“WINNER”,100);
quoteApprovalConfig.add(列);
column=新ColumnConfig(CompetitionWinnerDTO.Property.WINNER_QUOTE,“QUOTE”,300);
最终文本区域文本=新文本区域();
text.setAllowBlank(false);
text.setPreventScrollbars(true);
column.setEditor(新的CellEditor(文本));
quoteApprovalConfig.add(列);
column=新ColumnConfig(CompetitionWinnerDTO.Property.WINNER_QUOTE,“Prize”,75);
column.setRenderer(新的TableRenders.CurrencyRenderer(默认货币代码));
quoteApprovalConfig.add(列);
私有最终ColumnModel quoteApprovalColumns=新ColumnModel(quoteApprovalConfig);
私有最终EditorGrid quoteApprovalGrid=新EditorGrid(quoteApprovalStore,quoteApprovalColumns);
quoteApprovalGrid.setWidth(LeadIntelConstants.SITE_宽度-25-15);
quoteApprovalGrid.setAutoWidth(真);
quoteApprovalGrid.setAutoHeight(真);
quoteApprovalGrid.setAutoExpandColumn(CompetitionWinnerTo.Property.WINNER_NAME);
quoteApprovalGrid.setBorders(真);
quoteApprovalGrid.setStripeRows(真);
以及调用GWT-RPC服务并用结果填充存储的代码:

private void refreshQuoteApproval() {
    competitionService.getCompetitionWinners(
            CompetitionWinnerDTO.Status.pending, new AsyncCallback<List<CompetitionWinnerDTO>>() {
        @Override
        protected void onSuccess(List<CompetitionWinnerDTO> result) {
            setQuoteApprovalWinners(result);
        }
    });
}

private void setQuoteApprovalWinners(List<CompetitionWinnerDTO> quoteApprovalWinners) {
    quoteApprovalStore.removeAll();
    if (quoteApprovalWinners != null) {
        quoteApprovalStore.add(quoteApprovalWinners);
    }
}
private void refreshQuoteApproval(){
competitionService.getCompetitionWinners(
CompetitionWinnerDTO.Status.pending,新的AsyncCallback(){
@凌驾
成功时受保护的无效(列表结果){
setQuoteApprovalWinners(结果);
}
});
}
私有无效设置quoteApprovalWinners(列出quoteApprovalWinners){
quoteApprovalStore.removeAll();
如果(quoteApprovalWinners!=null){
添加(quoteApprovalWinners);
}
}
正如我所说,我可以看到返回的列表不是空的,执行到达
quoteApprovalStore.add(quoteApprovalWinners)没有任何问题,列表包含一个元素


任何帮助都将不胜感激。

对,我发现了问题,有两列具有相同的ID:

这个:

column = new ColumnConfig(CompetitionWinnerDTO.Property.WINNER_QUOTE, "Quote", 300);
还有另一个:

column = new ColumnConfig(CompetitionWinnerDTO.Property.WINNER_QUOTE, "Prize", 75);
只需将后者的id更改为唯一id即可解决问题


附言:如果GXT能就此发出警告那就太好了。对,我发现了问题,有两列的ID相同:

这个:

column = new ColumnConfig(CompetitionWinnerDTO.Property.WINNER_QUOTE, "Quote", 300);
还有另一个:

column = new ColumnConfig(CompetitionWinnerDTO.Property.WINNER_QUOTE, "Prize", 75);
只需将后者的id更改为唯一id即可解决问题

附言:如果GXT能就此发出警告那就太好了