Я работаю над gwt, и есть случай, когда я нажимаю кнопку, существующая сетка с панели должна быть удалена, а новая сетка должна быть добавлена. Может кто-нибудь, пожалуйста, помогите мне в этом. Ниже приведен мой код, который выполняется, когда я нажимаю кнопку обновления. Я редактирую существующую сетку и обновляю несколько деталей в базе данных. Поэтому, когда я нажимаю эту кнопку обновления, я снова делаю новый вызов rpc и извлекаю новые данные после обновления сетки, и мне нужно отобразить новые данные в самой существующей сетке.
RpcProxy< String> proxy_refresh = new RpcProxy< String>() {
protected void load(Object loadConfig, AsyncCallback<String> callback) {
if (itemService == null) {
itemService = GWT.create(ReleaseItemService.class);
}
itemService.search(criteria, callback);
}
};
xml.setRoot("resultset");
xml.setRecordName("record");
xml.addField("release_id");
xml.addField("project_name");
xml.addField("type");
xml.addField("business_unit");
xml.addField("project_manager");
xml.addField("developer");
xml.addField("deployer");
xml.addField("verifier");
xml.addField("status");
xml.addField("item_no");
xml.addField("qa_developer");
xml.addField("deployment_date");
XmlReader reader_refresh = new XmlReader(xml);
BaseListLoader loader_refresh = new BaseListLoader(proxy_refresh, reader_refresh);
loader_refresh.addLoadListener(new LoadListener() {
public void loaderLoadException(LoadEvent le) {
super.loaderLoadException(le);
MessageBox.alert("Error", le.exception.getMessage(), null);
}
});
columns = new ArrayList<ColumnConfig>(6);
columns.add(new ColumnConfig("release_id", "Release ID", 70));
columns.add(new ColumnConfig("item_no", "Item No", 70));
columns.add(new ColumnConfig("deployment_date", "Deployment Date", 150));
columns.add(new ColumnConfig("business_unit", "Business Unit", 100));
columns.add(new ColumnConfig("type", "Type", 120));
columns.add(new ColumnConfig("project_name", "Project Name", 120));
columns.add(new ColumnConfig("status", "Status", 100));
columns.add(new ColumnConfig("developer", "Devloper", 100));
columns.add(new ColumnConfig("qa_deployer", "QA Deployer", 125));
store_refresh = new ListStore<BaseModelData>(loader_refresh);
ColumnModel columnModel1 = new ColumnModel(columns);
System.out.println("removing grid from panel");
grid.removeFromParent();
if(flag==true){
System.out.println("Removing grid1");
grid1.removeFromParent();
}
// grid1.removeFromParent();
System.out.println("Creating new grid");
grid1 = new EditorGrid(store_refresh, columnModel1);
grid1.setBorders(true);
grid1.setAutoHeight(true);
grid1.setLoadMask(true);
grid1.setStripeRows(true);
grid1.getView().setEmptyText("No data found for the given criteria");
System.out.println("Adding grid1 to panel");
loader_refresh.load();
grid1.getStore().getLoader().load();
panel.add(grid1);
panel.getLayout().layout();
//submit.hide();
loader_refresh.load();
flag = true;
System.out.println("Loader refresh "+loader_refresh.load()+" store refresh is "+store_refresh.getCount());
proxy_refresh = null;
store_refresh = null;
loader_refresh = null;
reader_refresh = null;
System.out.println("Loader refresh "+loader_refresh+" store refresh is "+store_refresh+"proxy_refresh "+proxy_refresh+"reader_refresh "+reader_refresh);
Мне удалось удалить старую сетку, но при добавлении новой сетки на панель новые данные не отображаются.
Ниже картинка
![введите здесь описание изображения][1]
Заранее спасибо.