Ejemplo n.º 1
0
        /// <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);
                }
            }
        }
Ejemplo n.º 2
0
        /// <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);
                }
            }
        }