Ejemplo n.º 1
0
 public static string ToHtmlTable(this HtmlTableHelperBuilder builder, object tableAttributes = null, object trAttributes = null, object tdAttributes = null, HtmlTableSetting HTMLTableSetting = null)
 {
     return(ToHtmlTableByIEnumrable(builder.Enums, tableAttributes, trAttributes, tdAttributes, HTMLTableSetting, builder));
 }
Ejemplo n.º 2
0
        private static string ToHtmlTableByIEnumrable <T>(IEnumerable <T> enums, object tableAttributes = null, object trAttributes = null, object tdAttributes = null, HtmlTableSetting HTMLTableSetting = null, HtmlTableHelperBuilder builder = null)
        {
            var htmltablegenerater = HtmlTableGeneraterFactory.CreateInstance(tableAttributes, trAttributes, tdAttributes, HTMLTableSetting);

            htmltablegenerater._HtmlTableHelperBuilder = builder;
            // Q:   Why not only IEnumerable<IDictionary> ?
            // A:   Example Dapper Dynamic Query Only implement IDictionary<string,object> without IDictionary
            // Q:   Why not use overload ToHtmlTable<TKey,TValue>(this IEnumerable<Dictionary<Tkey,TValue>> enums)?
            // A:   Because ToHtmlTable<T>(this IEnumerable<T> enums) and ToHtmlTable<TKey,TValue>(this IEnumerable<Dictionary<Tkey,TValue>> enums)
            //      System prefer use the former
            //      ps. https://stackoverflow.com/questions/54251262/c-sharp-overload-key-value-and-non-key-value-type-using-var-without-specifying
            if (enums is IEnumerable <IDictionary <string, object> > ) //Special for Dapper Dynamic Query
            {
                return(htmltablegenerater.ToHtmlTableByKeyValue(enums as IEnumerable <IDictionary <string, object> >));
            }
            else if (enums is IEnumerable <IDictionary> )
            {
                return(htmltablegenerater.ToHtmlTableByKeyValue(enums as IEnumerable <IDictionary>));
            }
            else
            {
                return(htmltablegenerater.ToHtmlTableByProperties(enums));
            }
        }