我有一个EditorGrid。如果用户没有该特定列的编辑权限,我想取消编辑(使用BeforeEdit事件)。此数据(“canEdit”值)位于行的数据存储中,但尚未向网格添加列。
我认为解决这个问题的最佳方法是取消BeforeEdit事件中的编辑。但是,我遇到麻烦,从BeforeEdit事件中的选定行获取数据。如果有人可以通过一个小代码片段向我指出正确的方向,以便如何从BeforeEdit事件中的选定行中获取数据值,我将非常感激!或者,如果有更好的方法继续下去,我很乐意听取您的意见。
谢谢! 珍
答案 0 :(得分:0)
final EditorGrid<Plant> grid = new EditorGrid<Plant>(store, cm);
grid.addListener(Events.BeforeEdit, new Listener<GridEvent<Plant>>(){
@Override
public void handleEvent(GridEvent<Plant> be) {
//This retrieves the model being edited.
Plant model = be.getModel();
GWT.log("Model edited "+model.getName());
}
});
此代码段使用GXT提供的示例程序。您可以看到原始示例的演示以及完整代码here。
答案 1 :(得分:0)
这是我用过的工作:
grid.addListener(Events.BeforeEdit, new Listener<BaseEvent>() {
@Override
ModelData comment = ((EditorGrid)be.GetSource().getSelectionModel().getSelectedItem();
Boolean canEdit = Boolean.parseBoolean(comment.get("canEdit").toString());
be.setCancelled(!canEdit);
}