/// <summary> /// Set html properties for cell /// </summary> /// <param name="cellToConfigurate">Cell for setup</param> /// <param name="grid">Grid to render</param> /// <param name="row">Row to get properties</param> /// <returns>Configured header cell</returns> private HtmlTableHeaderCell ConfigureHeaderCell(HtmlTableHeaderCell cellToConfigurate, Grid grid, GridRow row) { if (row.NonBordered) { cellToConfigurate.Styles.Add("display:none"); } if (row.ColumnName != null) { cellToConfigurate.InnerHtml = row.ColumnName; } if (row.ColumnWidth != 0) { cellToConfigurate.Styles.Add(string.Format("max-width:{0}px", row.ColumnWidth)); } if (!string.IsNullOrEmpty(row.DataField)) { cellToConfigurate.Attributes.Add(new KeyValuePair<string, string>("data-field", row.DataField)); } if (!string.IsNullOrEmpty(row.ModelField)) { cellToConfigurate.Attributes.Add(new KeyValuePair<string, string>("data-modelfield", row.ModelField)); } if (row.IsSortable) { cellToConfigurate.Classes.Add("sort-row"); if (grid.Sorting != null && grid.Sorting.SortColumnName == row.DataField) { cellToConfigurate.Classes.Add("current-sort"); if (grid.Sorting.LowestToHight) { cellToConfigurate.Classes.Add("sorting_asc"); } else { cellToConfigurate.Classes.Add("sorting_desc"); } } else { cellToConfigurate.Classes.Add("sorting"); } } if (row.IsHidden) { cellToConfigurate.Styles.Add("display:none"); } return cellToConfigurate; }
/// <summary> /// Renders grid header /// </summary> /// <param name="grid">Grid to render</param> /// <returns>Rendered in string grid</returns> private string RenderHeader(Grid grid) { var headerRender = string.Empty; foreach (var row in grid.Rows) { var headerCell = new HtmlTableHeaderCell(); headerCell = this.ConfigureHeaderCell(headerCell, grid, row); headerRender += headerCell.ToString(); } return string.Format("<thead><tr>{0}</tr></thead>", headerRender); }