当用户完成编辑时,gxt GridInlineEditing 不会通知 ListStore 中的数据更改
gxt GridInlineEditing doesn't notify data change in ListStore when the user completeEdit
实际上我正在使用 GWT 和 gxt (3.1) 框架。我想创建一个 editable 网格。
所以我写了代码:
List<ColumnConfig<String[], ?>> l = createColumnList(cols);
gridDataDisplay = new Grid<String[]>(store, new ColumnModel<String[]>(l));
int indice = 0;
final GridEditing<String[]> editing = new GridInlineEditing<String[]>(gridDataDisplay);
for(ColumnConfig<String[], ?> columnConfig : l) {
if (!notEditable.contains(indice)) {
ColumnConfig<String[], String> tempColumnConfig = (ColumnConfig<String[], String>) columnConfig;
editing.addEditor(tempColumnConfig, new TextField());
}
indice++;
}
所以我按照教程Grid Editing。
使用下面的代码,我可以通过单击列单元格来修改我的数据。但是当验证时:更改不会出现在我的 table 上。网格显示旧值直到调用 store.commitChanges();
预先感谢您的帮助。
终于找到问题所在了。我想这会对其他人有所帮助。
当我创建我的 ListStore 时,我使用 keyProvider 一个整数,每次添加新记录时它都会增加。
显然,密钥 keyProvider 必须仅使用模型属性。
实际上我正在使用 GWT 和 gxt (3.1) 框架。我想创建一个 editable 网格。
所以我写了代码:
List<ColumnConfig<String[], ?>> l = createColumnList(cols);
gridDataDisplay = new Grid<String[]>(store, new ColumnModel<String[]>(l));
int indice = 0;
final GridEditing<String[]> editing = new GridInlineEditing<String[]>(gridDataDisplay);
for(ColumnConfig<String[], ?> columnConfig : l) {
if (!notEditable.contains(indice)) {
ColumnConfig<String[], String> tempColumnConfig = (ColumnConfig<String[], String>) columnConfig;
editing.addEditor(tempColumnConfig, new TextField());
}
indice++;
}
所以我按照教程Grid Editing。 使用下面的代码,我可以通过单击列单元格来修改我的数据。但是当验证时:更改不会出现在我的 table 上。网格显示旧值直到调用 store.commitChanges();
预先感谢您的帮助。
终于找到问题所在了。我想这会对其他人有所帮助。
当我创建我的 ListStore 时,我使用 keyProvider 一个整数,每次添加新记录时它都会增加。
显然,密钥 keyProvider 必须仅使用模型属性。