Java GXT网格行不可选择

Java GXT网格行不可选择,java,gwt,gxt,Java,Gwt,Gxt,我是GWT的新手。我有一个网格,其中包含从基本模型映射的简单数据。当用户选择一行时,应该选择该行。我已经检查了一些例子和帖子,看起来我们做的是正确的。下面的代码创建网格 请您提及将阻止此选择的senarios List<BaseModel> gridData= new ArrayList<BaseModel>(); List<ColumnConfig> config = new ArrayList<ColumnConfig>();

我是GWT的新手。我有一个网格,其中包含从基本模型映射的简单数据。当用户选择一行时,应该选择该行。我已经检查了一些例子和帖子,看起来我们做的是正确的。下面的代码创建网格

请您提及将阻止此选择的senarios

    List<BaseModel> gridData= new ArrayList<BaseModel>();
    List<ColumnConfig> config = new ArrayList<ColumnConfig>();
    config.add(new ColumnConfig("isPrimary","Primary",70));
    config.add(new ColumnConfig("accountName","Account Name",320));
    config.add(new ColumnConfig("activeProgram","Active Program",150));
    config.add(new ColumnConfig("accountNumber","Account",100));
    config.add(new ColumnConfig("accountXref","Account Xref",150));
    config.add(new ColumnConfig("status","Status",93));

    ColumnModel cm = new ColumnModel(config);

    PagingModelMemoryProxy proxy = new PagingModelMemoryProxy(gridData);
    final PagingLoader<PagingLoadResult<Data>> loader = new BasePagingLoader<PagingLoadResult<Data>>(proxy);

    loader.setRemoteSort(false);
    store = new GroupingStore<Data>(loader);
    final PagingToolBar toolBar = new PagingToolBar(10);
    toolBar.bind(loader);
    loader.load(0, 10);

    GroupingView view = new GroupingView();
    view.setShowGroupedColumn(true);
    view.setForceFit(true);
    view.setGroupRenderer(new GridGroupRenderer() {
        public String render(GroupColumnData data) {
            String l = data.models.size() == 1 ? "Item" : "Items";
            return data.group.substring(data.group.indexOf("|") + 1, data.group.length())
                    + " (" + data.models.size() + " " + l + ")";
        }
    });

    ContentPanel cp = new ContentPanel();
    cp.setBodyBorder(false);

    cp.setButtonAlign(HorizontalAlignment.CENTER);
    cp.setLayout(new FitLayout());
    cp.setFrame(true);
    cp.setSize(verticalPanelWidth, "300px");
    cp.setBorders(hidden);
    cp.setBottomComponent(toolBar);
    GWT.log("store size" + store.getCount());
    grid = new Grid<Data>(store,cm);
    final GridSelectionModel<Data> sm = grid.getSelectionModel();
    sm.setSelectionMode(SelectionMode.SINGLE);
    grid.setSelectionModel(sm);

    final CellSelectionModel<Data> csm = new CellSelectionModel<Data>();
    csm.bindGrid(grid);

    grid.setBorders(true);
    grid.ensureDebugId("gridDebugId");
    //grid.ensureDebugId("gridDebugId");
    grid.setTabIndex(5);
    cp.add(grid);
    return cp;
List gridData=new ArrayList();
列表配置=新建ArrayList();
添加(新的ColumnConfig(“isPrimary”、“Primary”、70));
config.add(新的ColumnConfig(“accountName”,“accountName”,320));
config.add(新的ColumnConfig(“activeProgram”,“activeProgram”,150));
config.add(新的ColumnConfig(“accountNumber”,“Account”,100));
config.add(新的ColumnConfig(“accountXref”,“accountXref”,150));
config.add(新的ColumnConfig(“status”,“status”,93));
ColumnModel cm=新ColumnModel(配置);
PagingModelMemoryProxy代理=新的PagingModelMemoryProxy(gridData);
最终分页加载器=新的基本分页加载器(代理);
loader.setRemoteSort(false);
存储=新分组存储(加载器);
最终分页工具栏=新分页工具栏(10);
工具栏绑定(加载程序);
装载机。装载(0,10);
GroupingView视图=新建GroupingView();
view.setShowGroupedColumn(true);
view.setForceFit(true);
view.setGroupRenderer(新的GridGroupRenderer(){
公共字符串呈现(GroupColumnData数据){
字符串l=data.models.size()=1?“项”:“项”;
返回data.group.substring(data.group.indexOf(“|”)+1,data.group.length()
+“(“+data.models.size()+”“+l+”)”;
}
});
ContentPanel cp=新的ContentPanel();
cp.SetbodyOrder(错误);
cp.setButtonAlign(水平对齐.中心);
cp.setLayout(新fitlaway());
cp.setFrame(真);
cp.setSize(垂直面板宽度,“300px”);
cp.1订单(隐藏);
cp.setBottomComponent(工具栏);
log(“存储大小”+store.getCount());
网格=新网格(存储,厘米);
最终GridSelectionModel sm=grid.getSelectionModel();
sm.setSelectionMode(SelectionMode.SINGLE);
网格设置选择模型(sm);
最终CellSelectionModel csm=新CellSelectionModel();
csm.bindGrid(grid);
网格。命令(真);
grid.ensuredbugid(“gridDebugId”);
//grid.ensuredbugid(“gridDebugId”);
grid.setTabIndex(5);
cp.add(网格);
返回cp;

我不知道它为什么起作用,但在设置网格对象的所有属性后,我在函数本身中进行了网格声明和实例化,并将其分配给了成员变量。这样做没有任何问题。请参阅下面的代码片段

**Grid<Data> grid = new Grid<Data>(store,cm);**
final GridSelectionModel<Data> sm = grid.getSelectionModel();
sm.setSelectionMode(SelectionMode.SINGLE);
grid.setSelectionModel(sm);

final CellSelectionModel<Data> csm = new CellSelectionModel<Data>();
csm.bindGrid(grid);

grid.setBorders(true);
grid.ensureDebugId("gridDebugId");
//grid.ensureDebugId("gridDebugId");
grid.setTabIndex(5);
**globalGrid = grid;**
cp.add(grid);
return cp;
**网格=新网格(商店,厘米)**
最终GridSelectionModel sm=grid.getSelectionModel();
sm.setSelectionMode(SelectionMode.SINGLE);
网格设置选择模型(sm);
最终CellSelectionModel csm=新CellSelectionModel();
csm.bindGrid(grid);
网格。命令(真);
grid.ensuredbugid(“gridDebugId”);
//grid.ensuredbugid(“gridDebugId”);
grid.setTabIndex(5);
**globalGrid=grid**
cp.add(网格);
返回cp;

这甚至不是我之前给出的答案,而是CSS

我正在为GWT使用GXT lib,他们有GXT-all.css文件,在这个文件中,他们有


.x-grid3-row-over类在几个位置声明,这有助于定义网格的行颜色。我已经删除了背景图像和其中的颜色属性,它开始按预期工作。一直以来,当我将鼠标移到上面时,背景图像都会显示出来

如果您希望选择行,为什么要配置CellSelectionModel来代替它?我正在尝试一些方法,试图让它工作,这可能不会破坏它。如果您不使用第二个选择模型,您仍然应该删除它,因为另一个选择模型绑定到网格,并且如果可以,将尝试处理事件。