比如我有数据库某些表的实体类(序列化的)
目前已经能通过IList<实体类名> t=GetData()  //GetData()是返回某数据表的所有行我如何通做一个通用类,实现各种<实体类名>所返回数据的相应格式的列印?列印就是通过<table><tr><td>....<table>之类的形式输出!
也就是说要实现各个表数据的相同形式html输出 

解决方案 »

  1.   

    你想复杂了,这样可以吗   public class GenericList<T>
        {
            public IList<T> GetData()
            {
                //code
            }
        }
      

  2.   

     //做到动态的话要用反射吧。
     //EX:using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Reflection;
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<DataOrder> lst = new List<DataOrder>();            DataOrder obj = new DataOrder();
                obj.OrderDate = DateTime.Now;
                obj.OrderNo = "OD2009_01";
                lst.Add(obj);            obj = new DataOrder();
                obj.OrderDate = DateTime.Today;
                obj.OrderNo = "OD2009_02";
                lst.Add(obj);            foreach (DataOrder o in lst)
                {
                    Console.WriteLine(GetHtmlTable<DataOrder>(o, o.GetType()));
                }
                
                Console.Read();
            }
            static string GetHtmlTable<T>(T obj,Type t)
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("<tr>");
                foreach (FieldInfo pinfo in t.GetFields())
                {
                    sb.Append("<td>");
                    sb.Append(pinfo.GetValue(obj));
                    sb.Append("</td>");
                }
                sb.AppendLine("");
                sb.Append("</td>");
                return sb.ToString();
            }
        }    //EX:
        class DataOrder     //你的实体类名
        {
            public string OrderNo;
            public DateTime OrderDate;
        }
    }
      

  3.   

    你要一个万能的方法来枚举所有实体类的属性?这可以用Reflection来做啊。不过这有一些问题,例如你实体类的所有属性都要输出吗?表头给这些属性分配怎样的名字呢?属性按照什么排序呢?当然,你可以通过加入Attribute的方式,来声明这些特性,然后在Reflection时把这些因素都考虑进去。
      

  4.   

    用泛型? 为什么啊,泛型是为了把不同类型的整合到一起,而方便调用和节约而使用的。
    她和html的表单结合,你搞的太复杂了。
    你的方法在用js实现其不比 泛型好用的多了。因为js定义的时候不用类型。然后把们组合到数组里 遍历判断 可否?
      

  5.   

    问下LZ是不是要实现这么个效果?
    在企业管理器或者查询分析器里面的任意一张表的所有内容
    在HTML页面里面用表格形式显示。
    还是用一个通用类将所有表的特征全部抽象出来?
    看了您的描述我还是不明白您要做啥?
      

  6.   

                Idatatable dal = new datatable();
                IList<datatableInfo> bI=dal.GetCategories();我的数据都是类以上形式获取的我就想用一个通用类返回相应数据表的HTML,就是通过该类给数据做模板的套用关键在如何把上面的bI传到类方法中,并且遍历生成