public void Add(string key, string title, HlidacStatu.Lib.Render.ReportDataSource report) { queue.Add(new QueueItem() { Key = key, Title = title, Data = report, Type = QueueItem.types.table }); }
public static IHtmlString DataToHTMLTable <T>(this HtmlHelper htmlHelper, HlidacStatu.Lib.Render.ReportDataSource <T> rds, string tableId = "", string dataTableOptions = @"{ 'language': { 'url': '//cdn.datatables.net/plug-ins/1.10.19/i18n/Czech.json' }, 'order': [], 'lengthChange': false, 'info': false, }", string customTableHeader = null) { System.Text.StringBuilder sb = new System.Text.StringBuilder(1024); string _tableId = tableId; if (string.IsNullOrEmpty(tableId)) { _tableId = Devmasters.TextUtil.GenRandomString("abcdefghijklmnopqrstuvwxyz", 10); } sb.AppendLine(@"<script> var tbl_" + _tableId + @"; $(document).ready(function () { tbl_" + _tableId + @" = $('#" + _tableId + @"').DataTable(" + dataTableOptions + @"); }); </script>"); sb.AppendFormat("<h3>{0}</h3>", rds?.Title ?? ""); sb.AppendFormat("<table id=\"{0}\" class=\"table-sorted table table-bordered table-striped\">", _tableId); if (customTableHeader == null) { sb.Append("<thead><tr>"); foreach (var column in rds.Columns) { sb.AppendFormat("<th>{0}</th>", column.Name); } sb.Append("</tr></thead>"); } else { sb.AppendFormat(customTableHeader, _tableId); } sb.Append("<tbody class=\"list\">"); foreach (var row in rds.Data) { sb.Append("<tr>"); foreach (var d in row) { sb.AppendFormat("<td {2} class=\"{0}\">{1}</td>", d.Column.CssClass, d.Column.HtmlRender(d.Value), string.IsNullOrEmpty(d.Column.OrderValueRender(d.Value)) ? string.Empty : string.Format("data-order=\"{0}\"", d.Column.OrderValueRender(d.Value)) ); } sb.Append("</tr>"); } sb.Append("</table>"); return(htmlHelper.Raw(sb.ToString())); }