public override void RenderColumnHeader(IGridColumn <TModel> column, string key, int nextSortOrder, bool isGroupTableHeader)
        {
            var th = new TagBuilder("th");

            th.MergeAttributes(column.HeaderAttributes);
            if (column.SortDirection.HasValue)
            {
                th.Attributes["class"] = th.Attributes.ContainsKey("class")? "sorted " + th.Attributes["class"]: "sorted";
            }

            Writer.Write(th.ToString(TagRenderMode.StartTag));

            if (column.HeaderRender != null)
            {
                var value = column.HeaderRender(HtmlHelper);
                Writer.Write(value);
            }
            else
            {
                var isGroupableColumn = (!isGroupTableHeader && column.GroupKeyProperty != null && !column.GroupOrder.HasValue);

                var groupClass = isGroupableColumn ? GroupHeaderClass : string.Empty;

                var groupTag = string.Empty;

                if (isGroupableColumn)
                {
                    var groupTagBuilder = new TagBuilder("sup");
                    groupTagBuilder.AddCssClass("grid-group-tag");
                    groupTagBuilder.SetInnerText("G");

                    if (!String.IsNullOrEmpty(GridRenderOptions.GroupTagTitle))
                    {
                        groupTagBuilder.Attributes["title"] = GridRenderOptions.GroupTagTitle;
                    }

                    groupTag = groupTagBuilder.ToString(TagRenderMode.Normal);
                }

                Writer.Write("<div class=\"grid-column-wrap {2}\" data-key=\"{0}\" data-title=\"{1}\">", key, column.Title, groupClass);
                Writer.Write(groupTag);

                var isSortableColumn = column.SortProperty != null;
                if (isSortableColumn)
                {
                    RenderSortableColumnHeader(column, key, nextSortOrder, isGroupTableHeader);
                }
                else
                {
                    Writer.Write("<span class=\"grid-column-title\">{0}</span>", column.Title);
                }

                Writer.Write("</div>");
            }

            Writer.Write("</th>");
        }