刪除行我使用以下代碼添加一個扣式列到celltable:GWT celltable - 刪除按鈕不會從表
public class CellTableExample implements EntryPoint {
private static class Contact {
private String address;
private String name;
public Contact(String name, String address) {
super();
this.address = address;
this.name = name;
}
}
// The list of data to display.
private static List<Contact> CONTACTS = Arrays.asList(
new Contact("John", "123 Fourth Road asdf asdf asdfasdf"),
new Contact("Mary", "222 Lancer Lane")
);
@Override
public void onModuleLoad() {
CellTable<Contact> table = new CellTable<Contact>();
//address column
TextColumn<Contact> addressColumn = new TextColumn<Contact>(){
@Override
public String getValue(Contact contact) {
return contact.address;
}
};
//name column
TextColumn<Contact> nameColumn = new TextColumn<Contact>(){
@Override
public String getValue(Contact contact) {
return contact.name;
}
};
//delete button column
ButtonCell deleteButton= new ButtonCell();
Column <Contact,String> delete= new Column <Contact,String>(deleteButton)
{
@Override
public String getValue(Contact c)
{
return "Delete";
}
};
delete.setFieldUpdater(new FieldUpdater<Contact,String>()
{
@Override
public void update(final int index, Contact c,String value)
{
SQLRunnerAsync service = (SQLRunnerAsync) GWT.create(SQLRunner.class);
AsyncCallback callback = new AsyncCallback()
{
@Override
public void onFailure(Throwable caught)
{}
@Override
public void onSuccess(Object result)
{
CONTACTS.remove(index);
table.redraw();
}
};
service.deleteContact(c.id,callback);
}
});
// Add the columns.
table.addColumn(nameColumn, "Name");
table.addColumn(addressColumn, "Address");
table.addColumn(delete, "Delete");
table.setRowCount(CONTACTS.size(), true);
table.setRowData(0, CONTACTS);
RootPanel.get().add(table);
}
}
當按下按鈕時,接點是從刪除數據庫。但是,表格保持不變,直到頁面刷新。有什麼我可以做的,所以當按下按鈕時,該行也會立即從表中刪除?
我添加了代碼:table.redraw()當聯繫人成功地從數據庫中刪除,但它不工作。
謝謝,試過了..沒有工作。 – sap
我很抱歉聽到這個消息。無論如何,更新模型後它應該是自動的,不是嗎? :/順便說一句,如果它對你沒有用處,你是否希望刪除這個答案?謝謝 – Xorty
這就是我的想法。但是自從gwt第一次啓動應用程序以來,gwt就會獲取數據,如果表格被更改,則必須調用數據庫以再次獲取數據以顯示已編輯的表格。我希望單元格表在一行被刪除時自動執行。 – sap