/// <summary> /// Formata as colunas do grid de acordo com o objeto passado como parâmetro. /// </summary> /// <param name="pGridView">O controle GridView.</param> /// <param name="pTable">Um DataTable tipado.</param> /// <param name="pColumns">Colunas do Grid</param> public static void FormatGrid(this GridView pGridView, DataTable pTable, params KeyValuePair <string, Dictionary <object, string> >[] pColumns) { pGridView.Columns.Clear(); foreach (DataColumn field in pTable.Columns) { var columnList = (from p in pColumns where p.Key.Equals(field.ColumnName) select new { p.Key, p.Value }) .FirstOrDefault(); var hasCustomColumn = (columnList != null); if (hasCustomColumn) { var column = new GridValidValuesColumn(); column.Name = field.ColumnName; column.Caption = field.Caption; column.OptionsColumn.AllowEdit = false; column.FieldName = field.ColumnName; column.ColumnEdit.NullText = String.Empty; pGridView.Columns.Add(column); column.Visible = true; foreach (var item in columnList.Value) { column.ValidValues.Add(item.Key, item.Value); } } else { pGridView.Columns.AddVisible(field.ColumnName, field.Caption); pGridView.Columns[field.ColumnName].OptionsColumn.AllowEdit = false; FormatColumn(pGridView.Columns[field.ColumnName], field.DataType, field.MaxLength); } } }
/// <summary> /// Formata a coluna de acordo com o tipo especificado. /// </summary> /// <param name="pGridView">Grid</param> /// <param name="pTableColumns">A coluna do GridView.</param> /// <param name="pColumns">Columnas com lista suspensa.</param> private static void CreateColumn(GridView pGridView, TableAdapterFieldCollection pTableColumns, params KeyValuePair <string, Dictionary <object, string> >[] pColumns) { foreach (TableAdapterField field in pTableColumns) { var columnList = (from p in pColumns where p.Key.Equals(field.Name) select new { p.Key, p.Value }).FirstOrDefault(); var hasCustomColumn = (columnList != null); if (hasCustomColumn) { var column = new GridValidValuesColumn(); column.Name = field.Name; column.Caption = field.Description; column.OptionsColumn.AllowEdit = false; column.FieldName = field.Name; column.ColumnEdit.NullText = String.Empty; pGridView.Columns.Add(column); column.Visible = true; foreach (var item in columnList.Value) { column.ValidValues.Add(item.Key, item.Value); } } else { pGridView.Columns.AddVisible(field.Name, field.Description); pGridView.Columns[field.Name].OptionsColumn.AllowEdit = false; FormatColumn(pGridView.Columns[field.Name], field.GetDbType(), field.Size); } } }