public void Add(DataTable data)
        {
            headers = new Tableheader();
            int level = 0;

            AddRecursive(data, headers, "", 0);
        }
 public void AddRecursive(DataTable data, Tableheader headers, string headerName)
 {
     headers.subheaders = new List <Tableheader>();
     foreach (DataRow row in data.AsEnumerable().Where(x => x.Field <string>("parent") == headerName))
     {
         Tableheader newHeader = new Tableheader();
         headers.subheaders.Add(newHeader);
         string title = row.Field <string>("title");
         newHeader.title = title;
         AddRecursive(data, newHeader, title);
     }
 }
 public void AddRecursive(DataTable data, Tableheader headers, string headerName, int level)
 {
     if (level > max)
     {
         max = level;
     }
     foreach (DataRow row in data.AsEnumerable().Where(x => x.Field <string>("parent") == headerName))
     {
         if (headers.subheaders == null)
         {
             headers.subheaders = new List <Tableheader>();
         }
         Tableheader newHeader = new Tableheader();
         headers.subheaders.Add(newHeader);
         string title = row.Field <string>("title");
         newHeader.title = title;
         AddRecursive(data, newHeader, title, level++);
     }
 }
        public int AddRecursiveSpan(int level, Tableheader header)
        {
            int cols = 0;

            foreach (Tableheader sHeader in header.subheaders)
            {
                if (sHeader.subheaders == null)
                {
                    sHeader.rowspan = max - level + 1;
                    sHeader.colspan = 1;
                    cols           += 1;
                }
                else
                {
                    sHeader.colspan += AddRecursiveSpan(level + 1, sHeader);
                    sHeader.rowspan  = 1;
                    cols            += sHeader.colspan;
                }
            }
            return(cols);
        }
Beispiel #5
0
 public void Add(DataTable data)
 {
     headers = new Tableheader();
     AddRecursive(data, headers, "", 1);
 }