[英]GWT - update table in panel
我有一个带有桌子的verticalPanel。 OnModuleLoad我从数据库中获取数据,这些数据显示在表中。 在按钮上单击我要从列表框中向其添加新数据。 它工作正常,但我不知道如何更新表/面板。 我在momemt所做的是创建一个新表来显示数据,但是我无法删除第一个表。 我必须将表格附加到面板上才能删除它吗? 实际上,我不喜欢这种解决方案,这就是为什么我想知道是否有更新方法之类的原因。
建立表格
public void createTimeTable(){
//Table and Panel -> created globally
//On Load -> get all times which are already booked
serviceImplURL.getRpcDB().getBookedTimes(username, new AsyncCallback<ArrayList<Times>>() {
/**
*/
@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
}
/**
*/
@Override
public void onSuccess(ArrayList<Times> startList) {
/**
*/
table.setRowCount(startList.size(), true);
table.setRowData(0, startList);
// Add column to show the start time.
TextColumn<Times> startColumn
= new TextColumn<Times>() {
@Override
public String getValue(Times times) {
return Double.toString(times.getStart());
}
};
table.addColumn(startColumn, "Beginn");
// Add column to show the pause time.
TextColumn<Times> pauseColumn
= new TextColumn<Times>() {
@Override
public String getValue(Times times) {
return Integer.toString(times.getPause());
}
};
table.addColumn(pauseColumn, "Pause in Minuten");
// Add column to show the end time.
TextColumn<Times> endColumn
= new TextColumn<Times>() {
@Override
public String getValue(Times times) {
return Double.toString(times.getEnd());
}
};
table.addColumn(endColumn, "Ende");
//table panel
panel.setBorderWidth(1);
panel.setWidth("400");
panel.add(table);
panel.getElement().setId("mainTable");
// Add the widgets to the root panel.
RootPanel.get().add(panel);
}
});
首先,您必须更正您的代码。 您只需要设置数据。 对? 因此,无需一次又一次创建表列来更改其中的数据。
首先在rpc调用方法之外创建表结构。 然后使用表的实例并在其中设置数据。
您只需要使用类似的方法来更新数据列表
table.setRowCount(startList.size(), true);
table.setRowData(0, startList);
编辑:
private void initilaize()
{
// Add column to show the start time.
TextColumn<Times> startColumn
= new TextColumn<Times>() {
@Override
public String getValue(Times times) {
return Double.toString(times.getStart());
}
};
table.addColumn(startColumn, "Beginn");
// Add column to show the pause time.
TextColumn<Times> pauseColumn
= new TextColumn<Times>() {
@Override
public String getValue(Times times) {
return Integer.toString(times.getPause());
}
};
table.addColumn(pauseColumn, "Pause in Minuten");
// Add column to show the end time.
TextColumn<Times> endColumn
= new TextColumn<Times>() {
@Override
public String getValue(Times times) {
return Double.toString(times.getEnd());
}
};
table.addColumn(endColumn, "Ende");
//table panel
panel.setBorderWidth(1);
panel.setWidth("400");
panel.add(table);
panel.getElement().setId("mainTable");
// Add the widgets to the root panel.
RootPanel.get().add(panel);
}
public void createTimeTable(){
//Table and Panel -> created globally
//On Load -> get all times which are already booked
serviceImplURL.getRpcDB().getBookedTimes(username,
new AsyncCallback<ArrayList<Times>>() {
/**
*/
@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
}
/**
*/
@Override
public void onSuccess(ArrayList<Times> startList) {
/**
*/
table.setRowCount(startList.size(), true);
table.setRowData(0, startList);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.