예제 #1
0
 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
     });
 }
예제 #2
0
        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()));
        }