如何在listGrid的记录上显示contextMenu?

时间:2013-05-28 08:32:28

标签: contextmenu smartgwt listgrid

我正在使用smartGwt 3.0,我有一个listGrid,其中有一些记录,我想在点击一条记录时显示contextMenu。我写了代码,一切正常。

我的问题是,当我右键单击我的listGrid(不在记录上)时,会出现上下文菜单,我不希望这种情况发生。那我该怎么做才能解决这个问题?

listGrid.addCellContextClickHandler(new CellContextClickHandler() {
            public void onCellContextClick(final CellContextClickEvent rightClickEvent) 
            {                                                   
                Menu menu = new Menu();             
                MenuItem hangupItem = new MenuItem("Hangup Call", "agent/hangup.png");              
                hangupItem.addClickHandler(new ClickHandler() {             
                    public void onClick(MenuItemClickEvent event) 
                    {
                        SC.confirm("Are you sure ? ", new BooleanCallback() {
                            public void execute(Boolean value) {
                                if (value != null && value) {   
                                    labelAnswer.setContents("OK...");   
                                } else {   
                                    labelAnswer.setContents("Cancel...");   
                                }   
                            }
                        });
                    }
                });

                menu.addItem(hangupItem);
                listGrid.setContextMenu(menu);              
            }
        });

1 个答案:

答案 0 :(得分:1)

将此侦听器添加到listgrid

listgrid.addShowContextMenuHandler(new ShowContextMenuHandler() {

    @Override
    public void onShowContextMenu(ShowContextMenuEvent event) {         
        event.cancel();
    }
});