Entao cara, eu consegui fazer com que recarregasse essa tela, somente a parte do meu table, so mandando recarregar a tela novamente e refazendo o meu ResultSet, mais ou menos como vc indicou acima.
O meu outro problema que estou enfrentando é o seguinte, tenho as minhas colunas do meu Table, e gostaria de adiconar duas ultimas colunas com um HtmlCommandLink, que fizesse o serviço de Alterar e Excluir o registro dessa table. Mas nao to conseguindo fazer com o que esse meu link aceite o meu managedbean, eu clico nele, mas ele nao faz nada, nao leva para lugar algum. Por acaso tem algum exemplo, alguma dica.
Aqui vai o meu codigo que monta a tabela e o HtmlCommandLink (que estou fazendo separadamente para teste):
@ManagedBean
@RequestScoped
@SessionScoped
@ApplicationScoped
@ViewScoped
public class GridTeste extends HtmlDataTable implements ActionListener {
private ResultSetMetaData rsmt;
private String Mb;
public GridTeste(ResultSet campos, String Mb) throws SQLException {
rsmt = campos.getMetaData();
this.Mb = Mb;
populateDynamicDataTable();
}
public void populateDynamicDataTable() throws NullPointerException,
ELException, SQLException {
setVar("line");
setRendered(true);
setColumnClasses(Mb);
// table.setRowClasses("list-row-even,list-row-odd");
setRows(10);
setBorder(1);
getChildren().clear();
// alColumns is an arraylist with names of columns
for (int i = 0; i < rsmt.getColumnCount(); i++) {
// create col
UIColumn col = new UIColumn();
// create the columns value binding
HtmlOutputText colText = new HtmlOutputText();
String columnName = (String) rsmt.getColumnName(i + 1);
String columnBinding = "#{line." + rsmt.getColumnName(i + 1) + "}";
System.out.println(columnBinding);
ValueBinding vBinding = FacesContext.getCurrentInstance()
.getApplication().createValueBinding(columnBinding);
colText.setValueBinding("value", vBinding);
colText.setId("outputText" + i);
col.getChildren().add(colText);
// create col header
HtmlOutputText header = new HtmlOutputText();
header.setId("col" + i);
header.setValue(columnName);
col.setHeader(header);
getChildren().add(col);
}
UIColumn col = new UIColumn();
// create the columns value binding
HtmlCommandLink link = new HtmlCommandLink();
link.setId("seleciona");
link.setValue("Selecionar");
link.setOnclick("setPress('#{transacaoLinhas.selecionaItem}')");
col.getChildren().add(link);
// create col header
HtmlOutputText header = new HtmlOutputText();
header.setId("col3");
header.setValue("Selecionar");
col.setHeader(header);
getChildren().add(col);
}
A minha classe já extende um HtmlDataTable, ou seja todos os atributos eu adiciono direto nela, e a ultima parte é onde eu estou me debatendo para fazer funcionar, que é o meu Link.