2014-02-19 33 views
0

我想根据对象的某些输入删除操作单元格的点击处理程序。如何才能做到这一点?如何删除actionccell的点击处理程序?

目前,我的代码如下所示:

public static Column<vTO, vTO> 
createReissueButtonColumn(String columnName) { 
    ActionCell<VolunteerTO> reListCell = new ActionCell<VTO>("Reissue", 
     new ActionCell.Delegate<VTO>() { 
     @Override 
     public void execute(VTO object) { 
      // code to be executed 
     } 
     }) 
     { 
     @Override 
     public void render(Cell.Context context,VTO value,SafeHtmlBuilder sb) { 
      if(null != value.getStatus() && !"".equalsIgnoreCase(value.getStatus())) { 
       super.render(context,value,sb); 
      } 
     } 
    }; 

    Column<VTO, VTO> reListColumn = new Column<VTO, VTO>(reListCell) { 
     @Override 
     public VTO getValue(VTO object) { 
     return object; 
     } 
    }; 

    reListColumn.setDataStoreName(columnName); 
    reListColumn.setSortable(false); 
    return reListColumn; 
} 
+0

我从安德烈的问题的答案你的建议编辑添加的代码。就你所知,问题在于你应该在哪里包括这样的更新信息。 – cgmb

回答

1

您可以简单地忽略点击(什么都不做)根据你的条件。

编辑: 在您的代码中,在execute()方法中,您可以根据特定的条件执行某种操作,也可以不执行操作。

或者,您可以在此列取消click事件:

unitTable.addCellPreviewHandler(new Handler<Unit>() { 
    @Override 
    public void onCellPreview(CellPreviewEvent<Unit> event) { 
     if ("click".equals(event.getNativeEvent().getType())) { 
      if (event.getColumn() != myTable.getColumnIndex(reListColumn)) { 
       // Check some condition. If necessary: 
       event.setCanceled(true); 
      } 
     } 
    } 
}); 
+0

可以分享一些示例代码吗? – user3192996

+0

你有什么代码? –

+0

给你的邮件编号。我会分享你吗? – user3192996

相关问题