Thursday, September 16, 2010

Generate table from server side

I've been absent long enough :p, but few days ago, I found my post can be reference for myself so I decide to update again hohoho. For some reason I want to generate table(actually I don't know what reason, why didn't I used DataGrid or GridView instead of table)

I've make a generic function PopulateTable(Table tblObj, DataTable dtObject, TableRow trHeader), if needed you can edit according to your needs, because some data may need certain formatting in table. The code itself easy to understand

  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. //Assuming we have data in this tbl
  4. DataTable tbl = new DataTable();
  5. PopulateTable(tblContent, tbl, GetDocumentTableHeader());
  6. }
  7. private TableHeaderRow GetDocumentTableHeader()
  8. {
  9. TableHeaderRow thr = new TableHeaderRow();
  10. TableHeaderCell thc = new TableHeaderCell();
  11. thc.Text = "Title"; thc.CssClass = "title"; thr.Cells.Add(thc);
  12. thc = new TableHeaderCell();
  13. thc.Text = "Author"; thc.CssClass = "author"; thr.Cells.Add(thc);
  14. thc = new TableHeaderCell();
  15. thc.Text = "Description"; thc.CssClass = "categories"; thr.Cells.Add(thc);
  16. return thr;
  17. }
  18. private void PopulateTable(Table tblObj, DataTable dtObject, TableRow trHeader)
  19. {
  20. tblObj.Rows.Clear();
  21. tblObj.Rows.Add(trHeader);
  22. if (dtObject == null || dtObject.Rows.Count == 0)
  23. {
  24. //If no records found in DataTable then show No Result Found
  25. TableRow row = new TableRow();
  26. TableCell cell = new TableCell();
  27. cell.Text = "No Result Found!";
  28. cell.HorizontalAlign = HorizontalAlign.Center;
  29. cell.Font.Bold = true;
  30. cell.ForeColor = System.Drawing.Color.Red;
  31. cell.ColumnSpan = trHeader.Cells.Count;
  32. row.Cells.Add(cell);
  33. tblObj.Rows.Add(row);
  34. }
  35. else
  36. {
  37. for (int i = 0; i < dtObject.Rows.Count; i++)
  38. {
  39. TableRow row = new TableRow();
  40. for (int j = 0; j < trHeader.Cells.Count; i++)
  41. {
  42. TableCell cell = new TableCell();
  43. cell.Text = dtObject.Rows[i][j].ToString();
  44. row.Cells.Add(cell);
  45. }
  46. tblObj.Rows.Add(row);
  47. }
  48. }
  49. }

No comments: