public void CreateGrid() { for (int i = 0; i <= this.DataSet.Columns.Count - 1; i++) { JkDetailColumn column = this.DataSet.Columns[i]; if (column.DataType == SqlDbType.Bit) { CreateColumn(ColumnType.CheckBoxColumn, column, this); } else if (!String.IsNullOrWhiteSpace(column.ControlName)) { CreateColumn(ColumnType.ComboBoxColumn, column, this); } else { CreateColumn(ColumnType.TextBoxColumn, column, this); } } foreach (DataGridViewColumn column in this.Columns) { if (this.DataSet.GridColumn.Find(c => c.Name == column.Name) == null) { this.DataSet.GridColumn.Add(column); } } }
public void CreateColumn(ColumnType type, JkDetailColumn column, DataGridView grid) { if (type == ColumnType.CheckBoxColumn) { DataGridViewCheckBoxColumn GridColCheck = new DataGridViewCheckBoxColumn(); GridColCheck.Name = this.Name + "Column" + column.Name.Trim(); GridColCheck.HeaderText = column.Caption; GridColCheck.Width = column.Width; GridColCheck.Visible = column.Visible; GridColCheck.DataPropertyName = column.Name; GridColCheck.ReadOnly = column.ReadOnly; ApplyColumnStyle(column, GridColCheck); grid.Columns.Add(GridColCheck); } else if (type == ColumnType.ComboBoxColumn) { DataGridViewComboBoxColumn GridColCombo = new DataGridViewComboBoxColumn(); GridColCombo.Name = this.Name + "Column" + column.Name.Trim(); GridColCombo.HeaderText = column.Caption; GridColCombo.Width = column.Width; GridColCombo.Visible = column.Visible; GridColCombo.DataPropertyName = column.Name; GridColCombo.ReadOnly = column.ReadOnly; GridColCombo.AutoComplete = true; ApplyColumnStyle(column, GridColCombo); grid.Columns.Add(GridColCombo); } else if (type == ColumnType.TextBoxColumn) { DataGridViewTextBoxColumn GridColText = new DataGridViewTextBoxColumn(); GridColText.Name = this.Name + "Column" + column.Name.Trim(); GridColText.HeaderText = column.Caption; GridColText.Width = column.Width; GridColText.Visible = column.Visible; GridColText.DataPropertyName = column.Name; GridColText.ReadOnly = column.ReadOnly; ApplyColumnStyle(column, GridColText); grid.Columns.Add(GridColText); } }
public void CreateColumn(ColumnType type, JkDetailColumn column, JkGridColumnSerializer.JkGridColumnProperties properties, DataGridView grid) { if (type == ColumnType.CheckBoxColumn) { DataGridViewCheckBoxColumn GridColCheck = new DataGridViewCheckBoxColumn(); GridColCheck.Name = properties.Name; GridColCheck.HeaderText = properties.HeaderText; GridColCheck.Width = properties.Width; GridColCheck.Visible = properties.Visible; GridColCheck.DataPropertyName = properties.DataPropertyName; GridColCheck.ReadOnly = properties.ReadOnly; ApplyColumnStyle(column, GridColCheck); grid.Columns.Add(GridColCheck); } else if (type == ColumnType.ComboBoxColumn) { DataGridViewComboBoxColumn GridColCombo = new DataGridViewComboBoxColumn(); GridColCombo.Name = properties.Name; GridColCombo.HeaderText = properties.HeaderText; GridColCombo.Width = properties.Width; GridColCombo.Visible = properties.Visible; GridColCombo.DataPropertyName = properties.DataPropertyName; GridColCombo.ReadOnly = properties.ReadOnly; ApplyColumnStyle(column, GridColCombo); grid.Columns.Add(GridColCombo); } else if (type == ColumnType.TextBoxColumn) { DataGridViewTextBoxColumn GridColText = new DataGridViewTextBoxColumn(); GridColText.Name = properties.Name; GridColText.HeaderText = properties.HeaderText; GridColText.Width = properties.Width; GridColText.Visible = properties.Visible; GridColText.DataPropertyName = properties.DataPropertyName; GridColText.ReadOnly = properties.ReadOnly; ApplyColumnStyle(column, GridColText); grid.Columns.Add(GridColText); } }
private void CreateColumns() { SqlDataAdapter DataAdapter = new SqlDataAdapter(CommandText, ConnectionString); try { if (Parameters.Count > 0) { for (int i = 0; i <= Parameters.Count - 1; i++) { if (String.IsNullOrWhiteSpace(Parameters[i].Value) || Parameters[i].Value[0].ToString() == "@") { DataAdapter.SelectCommand.Parameters.AddWithValue("@" + Parameters[i].Name, 0); } } } DataAdapter.Fill(DataTable); foreach (DataColumn dc in DataTable.Columns) { JkDetailColumn column = new JkDetailColumn(); column.Caption = dc.ColumnName; column.DataType = ConvertTypeToSqlType(dc.DataType); column.Name = dc.ColumnName; column.Required = !dc.AllowDBNull; if (column.Name.Contains("Id")) { column.Visible = false; } column.Width = 100; if (Columns.Find(col => col.Name == column.Name) == null) { _Columns.Add(column); } } } finally { DataAdapter.Dispose(); } }
public static void ApplyColumnStyle(JkDetailColumn detailColumn, DataGridViewColumn gridColumn) { if (detailColumn.DataType == SqlDbType.DateTime) //checkbox { gridColumn.DefaultCellStyle.Format = "MM'/'dd'/'yyyy"; } else if (!String.IsNullOrWhiteSpace(detailColumn.ControlName)) //combobox { (gridColumn as DataGridViewComboBoxColumn).DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing; (gridColumn as DataGridViewComboBoxColumn).DropDownWidth = gridColumn.Width + 50; } else if (detailColumn.DataType == SqlDbType.Money || //numeric textbox detailColumn.DataType == SqlDbType.Float || detailColumn.DataType == SqlDbType.Decimal) { gridColumn.DefaultCellStyle.Format = "#,##0.00;(#,##0.00)"; gridColumn.ValueType = Type.GetType("System.Decimal"); gridColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; } }
public void CreateFooter() { JkDetailColumn ic = null; int EstimatedWidth = 0, offset = 1, gridWidth = 0; if (this.RowHeadersVisible) { offset = 35; } if (VisibleColumnCount() != 0) { EstimatedWidth = Convert.ToInt32((this.Width) / VisibleColumnCount()) - 18; } GridFooter.Padding = new Padding(3, 3, 3, 3); if (DataSet.Columns.Count > 0) { Label lblOffset = new Label(); lblOffset.Name = "lblFooterOffset"; lblOffset.Width = offset; lblOffset.Margin = new Padding(0, 0, 0, 0); if (GridFooter.Controls.Find(lblOffset.Name, false).Length == 0) { GridFooter.Controls.Add(lblOffset); } for (int i = 0; i <= DataSet.Columns.Count - 1; i++) { ic = DataSet.Columns[i]; foreach (DataGridViewColumn column in this.Columns) { if (column.DataPropertyName == ic.Name) { gridWidth = column.Width; } } if (ic.Visible) { Label lblFooter = new Label(); lblFooter.Name = "lblFooter" + ic.Caption.Trim(); lblFooter.TextAlign = ContentAlignment.MiddleCenter; lblFooter.Text = AssignFooterValue(ic.FooterType, "0"); lblFooter.Font = new Font(this.Font.Name, this.Font.Size - 1, FontStyle.Bold); if (DataSet.GridAutoSize) { lblFooter.Width = EstimatedWidth; } else { lblFooter.Width = gridWidth; } if (ic.FooterType != JkDetailColumn.ColumnFooterTypes.ftNone) { lblFooter.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; lblFooter.Margin = new Padding(2, 0, 0, 0); } else { lblFooter.Margin = new Padding(0, 0, 0, 0); } if (GridFooter.Controls.Find(lblFooter.Name, false).Length == 0) { GridFooter.Controls.Add(lblFooter); } } } } }