private GVTable ConvertToGVTable(object source) { List <string> rowData = new List <string>(); GVTable theTable = new GVTable(); theTable.Rows = new List <GVRow>(); IEnumerable enumerable = DataSource as IEnumerable; foreach (object item in enumerable.OfType <object>()) { GVRow rowItem = new GVRow(); List <GVCell> cellList = new List <GVCell>(); var type = item.GetType().BaseType; List <PropertyInfo> infoList = item.GetType().GetRuntimeProperties().ToList(); foreach (PropertyInfo objectField in infoList) { GVCell cell = new GVCell(); string Type = objectField.PropertyType.ToString(); string Name = objectField.Name; string Value = objectField.GetValue(item).ToString(); cell.Type = Type; cell.Name = Name; cell.Value = Value; cellList.Add(cell); } rowItem.RowData = cellList; theTable.Rows.Add(rowItem); } return(theTable); }
public override void DataBind() { // TODO: It currently databinds twice due to PageLoad - Need to fix that pnlGridView.Controls.Clear(); gvTable = ConvertToGVTable(DataSource); List <GVRow> rowList = gvTable.Rows; rowList = rowList.GetRange(CurrentPage * ItemsPerPage, ItemsPerPage).ToList(); Table displayTable = new Table(); displayTable.CssClass = "rgvtable"; TableRow headerRow = new TableRow(); headerRow.CssClass = "rgvheader"; displayTable.Rows.Add(headerRow); // Headers GVRow firstRow = rowList[0]; foreach (var item in firstRow.RowData) { TableCell headerCell = new TableCell(); headerCell.CssClass = "rgvheader"; headerCell.Text = item.Name; headerRow.Cells.Add(headerCell); } // Data foreach (GVRow row in rowList) { TableRow dataRow = new TableRow(); dataRow.CssClass = "rgvdata"; displayTable.Rows.Add(dataRow); foreach (GVCell cell in row.RowData) { TableCell dataCell = new TableCell(); dataCell.CssClass = "rgvdata"; dataCell.Text = cell.Value; dataRow.Cells.Add(dataCell); } } // Footer - Probably paging here TableRow footerRow = new TableRow(); displayTable.Rows.Add(footerRow); TableCell footerCell = new TableCell(); footerRow.Cells.Add(footerCell); footerCell.ColumnSpan = rowList[0].RowData.Count; footerCell.HorizontalAlign = HorizontalAlign.Center; leftButton.Text = "<"; leftButton.ID = "btnPageLeft"; leftButton.Click += btnPageLeft_Click; footerCell.Controls.Add(leftButton); Button rightButton = new Button(); rightButton.Text = ">"; rightButton.ID = "btnPageRight"; rightButton.Click += btnPageRight_Click; footerCell.Controls.Add(rightButton); pnlGridView.Controls.Add(displayTable); }
private void ReloadTable() { GVTable.DataSource = this.Crud().Select(); GVTable.DataBind(); SaveLog("Consultou Informações"); }