We had the same problem. I ended up solving it by making the following HtmlHelper extension:
public static MvcHtmlString DisplayName(this HtmlHelper html, object value)
{
var displayAttributes = (DisplayAttribute[])value.GetType().GetField(value.ToString()).GetCustomAttributes(typeof(DisplayAttribute), false);
if (displayAttributes == null || displayAttributes.Length == 0)
{
return new MvcHtmlString(value.ToString());
}
return new MvcHtmlString(displayAttributes[0].Name);
}
The column could then be made like:
grid.Column("Status", "Status", item => Html.DisplayName(item.Status)),
Edit: For globalization, change "displayAttributes[0].Name" to "displayAttributes[0].GetName()".