我是GWT的新手。 好吧,我对CellTable有一些疑问......我对这个问题非常不满。 问题是:当我创建一个setRowData或ListDataProvider.setList时,List i中的所有数据都在所有列中重复。如果我在列表中有11个数据,则所有11个数据在11行和所有列中重复。 为了更好地解释问题的形象。
http://imageshack.us/photo/my-images/713/celltable.jpg/
我不知道要解决这类“问题”需要做些什么。 无论如何,我将发布代码:
// TABLE CODE
tablePesquisaResultados = new CellTable<String>();
tablePesquisaResultados.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.BOUND_TO_SELECTION);
tablePesquisaResultados.setTableLayoutFixed(true);
tablePesquisaResultados.setKeyboardPagingPolicy(KeyboardPagingPolicy.INCREASE_RANGE);
flexTable.setWidget(2, 0, tablePesquisaResultados);
SimplePager.Resources pagerResources = GWT.create(SimplePager.Resources.class);
SimplePager pager = new SimplePager(TextLocation.CENTER, pagerResources, false, 10, true);
pager.setDisplay(tablePesquisaResultados);
tablePesquisaResultados.setWidth("1262px");
colID = new TextColumn<String>() {
@Override
public String getValue(String object) {
return object.toString();
}
};
tablePesquisaResultados.addColumn(colID, "ID");
colNomeUsuario = new TextColumn<String>() {
@Override
public String getValue(String object) {
return object.toString();
}
};
tablePesquisaResultados.addColumn(colNomeUsuario, "Nome do Usuário");
colEmail = new TextColumn<String>() {
@Override
public String getValue(String object) {
return object.toString();
}
};
tablePesquisaResultados.addColumn(colEmail, "Email");
colCodigoUsuario = new TextColumn<String>() {
@Override
public String getValue(String object) {
return object.toString();
}
};
tablePesquisaResultados.addColumn(colCodigoUsuario, "Código do Usuário");
colTelefone = new TextColumn<String>() {
@Override
public String getValue(String object) {
return object.toString();
}
};
tablePesquisaResultados.addColumn(colTelefone, "Telefone");
colCodigoSituacao = new TextColumn<String>() {
@Override
public String getValue(String object) {
return object.toString();
}
};
tablePesquisaResultados.addColumn(colCodigoSituacao, "Código da Situação");
colDataAbertura = new TextColumn<String>() {
@Override
public String getValue(String object) {
return object.toString();
}
};
tablePesquisaResultados.addColumn(colDataAbertura, "Data de Abertura");
colDataEncerramento = new TextColumn<String>() {
@Override
public String getValue(String object) {
return object.toString();
}
};
tablePesquisaResultados.addColumn(colDataEncerramento, "Data de Encerramento");
colDescricao = new TextColumn<String>() {
@Override
public String getValue(String object) {
return object.toString();
}
};
tablePesquisaResultados.addColumn(colDescricao, "Descrição do Chamado");
colMidiaAnexada = new TextColumn<String>() {
@Override
public String getValue(String object) {
return object.toString();
}
};
tablePesquisaResultados.addColumn(colMidiaAnexada, "Mídia Anexada");
colStatusID = new TextColumn<String>() {
@Override
public String getValue(String object) {
return object.toString();
}
};
tablePesquisaResultados.addColumn(colStatusID, "Status ID");
flexTable.getFlexCellFormatter().setColSpan(2, 0, 2);
FlexTableHelper.fixRowSpan(flexTable);
// END TABLE CODE
//在CELLTABLE中插入数据的代码
ListDataProvider<String> dataProvider = new ListDataProvider<String>();
dataProvider.addDataDisplay(tablePesquisaResultados);
dataProvider.setList(resultado);
System.out.println(resultado);
//在CELLTABLE中插入数据的结束代码
嗯,有。
谢谢,建议。
答案 0 :(得分:1)
问题是每列都使用相同的getValue
函数:
@Override
public String getValue(String object) {
return object.toString();
}
您需要为每列返回要在该列中显示的值的特定函数。例如,列colNomeUsuario
:
colNomeUsuario = new TextColumn<String>() {
@Override
public String getValue(String object) {
return object.getNomeUsuario();
}
};
的修改
我刚注意到你定义细胞表的方式:
tablePesquisaResultados = new CellTable<String>();
你需要像这样定义它:
tablePesquisaResultados = new CellTable<MyObject>();
其中MyObject是一个表示要在单元格中显示的信息的类。
您可以使用Request Factory或GWT RPC将服务器对象传递到客户端。