protected override void ItemDataBinding(object sender, EventArgs e)
{
var cell = sender as TableCell;
if (cell == null) return;
var entity = cell.GetDataItem();
var icon = this.ComposeIcon(entity, Icon, DataField, IconFormat);
button.ImageUrl = icon;
button.ToolTip = this.Compose(entity, ToolTipField, ToolTipFormat);
button.CommandArgument = this.Compose(entity, IdField, null);
button.Visible = this.IsEnabled(entity, icon);
var message = this.Compose(entity, MessageField, MessageFormat, MessageSubject);
if (!message.IsNullOrEmpty()) { button.OnClientClick = @"return confirm('" + message + "');"; }
}