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); }
public void Add(DataTable data) { headers = new Tableheader(); AddRecursive(data, headers, "", 1); }