public static void BindComboBox(ComboBox box, DataColumn column) { if (box == null || column == null) { return; } BindingSource bs = GetBindingSource(column.Table); if (bs != null) { box.DataBindings.Add("SelectedValue", bs, column.ColumnName); } box.Tag = column; box.Leave -= new EventHandler(ControlLeave); box.Leave += new EventHandler(ControlLeave); RuleColumn rcolumn = TableUtil.GetRuleColumn(column); if (rcolumn != null) { InitComboBox(box, rcolumn); } else { box.ValueMember = column.ColumnName; box.DisplayMember = column.ColumnName; box.Text = ""; } }
public static void BindMaskedTextBox(MaskedTextBox box, DataColumn column) { if (box == null || column == null) { return; } BindingSource bs = GetBindingSource(column.Table); if (bs != null) { box.DataBindings.Add("Text", bs, column.ColumnName); } box.Tag = column; box.Leave -= new EventHandler(ControlLeave); box.Leave += new EventHandler(ControlLeave); RuleColumn rc = TableUtil.GetRuleColumn(column); if (rc != null) { box.Mask = rc.Mask; } box.Text = ""; }
public static void BindControls(Control container, DataTable table, bool searchChildren, string alias) { if (container == null || table == null) { return; } DataColumnCollection columns = table.Columns; if (columns != null && columns.Count > 0) { ResetLabels(container, alias); Control[] ctrls; DataColumn column; RuleColumn rc; int editIndex; for (int i = 0; i < columns.Count; i++) { column = columns[i]; rc = TableUtil.GetRuleColumn(column); if (rc != null && !rc.EditCtrlVision) { continue; } editIndex = (rc != null ? rc.EditIndex : i + 1); ctrls = FindControls(container, "label", alias, editIndex, column.ColumnName, searchChildren); if (ctrls != null && ctrls.Length > 0) { foreach (Control ctrl in ctrls) { ctrl.Text = column.Caption + ":"; } } ctrls = FindControls(container, "commonEditBox,textBox,checkBox,comboBox,dateTimePicker,richTextBox,pictureBox", alias, editIndex, column.ColumnName, searchChildren); if (ctrls != null && ctrls.Length > 0) { foreach (Control ctrl in ctrls) { BindControl(ctrl, column); } } } ctrls = FindControls(container, "dataGridView", alias, 1, table.TableName, searchChildren); if (ctrls != null && ctrls.Length > 0) { foreach (Control ctrl in ctrls) { InitDataGridViewColumns(ctrl as DataGridView, table); } } } }
public static void BindDateTimePicker(DateTimePicker picker, DataColumn column) { if (picker == null || column == null || !column.DataType.ToString().Equals("System.DateTime")) { return; } BindingSource bs = GetBindingSource(column.Table); if (bs != null) { picker.DataBindings.Add("Text", bs, column.ColumnName); } picker.Tag = column; picker.Leave -= new EventHandler(ControlLeave); picker.Leave += new EventHandler(ControlLeave); if (picker.CustomFormat == null || picker.CustomFormat.Equals("")) { RuleColumn rcolumn = TableUtil.GetRuleColumn(column); if (rcolumn != null) { switch (rcolumn.DataType) { case DataTypes.dtDateTime: picker.CustomFormat = "yyyy-MM-dd HH:mm:ss"; break; case DataTypes.dtDate: picker.CustomFormat = "yyyy-MM-dd"; break; case DataTypes.dtTime: picker.CustomFormat = "HH:mm:ss"; break; default: return; } picker.Format = DateTimePickerFormat.Custom; } } }
public static void BindCheckBox(CheckBox box, DataColumn column) { if (box == null || column == null || !column.DataType.ToString().Equals("System.Boolean")) { return; } BindingSource bs = GetBindingSource(column.Table); if (bs != null) { box.DataBindings.Add("Checked", bs, column.ColumnName); } box.Tag = column; box.Leave -= new EventHandler(ControlLeave); box.Leave += new EventHandler(ControlLeave); if (box.Name.Equals("") || box.Name.StartsWith("checkBox")) { RuleColumn rcolumn = TableUtil.GetRuleColumn(column); if (rcolumn != null) { box.Text = rcolumn.Label; string labelname = box.Name.Replace("checkBox", "label"); Control[] ctrls = box.Parent is CommonEditBox?box.Parent.Parent.Controls.Find(labelname, false) : box.Parent.Controls.Find(labelname, false); if (ctrls.Length > 0) { ctrls[0].Text = ""; } } } box.Checked = false; }
public static void InitDataGridViewColumns(DataGridView grid, DataTable table) { if (grid == null || table == null) { return; } //if (grid.Columns.Count > 0) // grid.Columns.Clear(); if (grid.Columns.Count == 0) { grid.EditingControlShowing -= new DataGridViewEditingControlShowingEventHandler(DataGridViewEditingControlShowing); grid.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(DataGridViewEditingControlShowing); DataRule dr = TableUtil.GetDataRule(table); if (dr != null) { DataColumnCollection columns = table.Columns; if (columns.Count > 0) { DataGridViewColumn gcolumn; RuleColumn rcolumn; foreach (DataColumn column in columns) { rcolumn = TableUtil.GetRuleColumn(column); if (rcolumn != null) { gcolumn = CreateDataGridViewColumn(rcolumn); grid.Columns.Add(gcolumn); } else { InitDataGridViewColumns(grid, dr); break; } } } else { InitDataGridViewColumns(grid, dr); } } else if (table.Columns.Count > 0) { DataGridViewColumn gcolumn; foreach (DataColumn column in table.Columns) { if (TableUtil.StrProperty(column, "Visible").Equals("0")) { continue; } gcolumn = null; string datatype = column.DataType.ToString(); if (datatype.Equals("System.Boolean")) { gcolumn = new DataGridViewCheckBoxColumn(); gcolumn.Width = column.MaxLength > 50 ? column.MaxLength : 50; gcolumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; } else if (datatype.Equals("System.DateTime")) { gcolumn = new CalendarColumn("yyyy-MM-dd HH:mm:ss"); gcolumn.Width = 130; gcolumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; } else { string mapInfo = TableUtil.StrProperty(column, "MapInfo"); if (!mapInfo.Equals("")) { DataMap dm = SystemContext.MapManager.FromMapInfo(mapInfo); if (dm != null) { DataTable mtable = dm.GetMapTable(null); if (mtable != null && mtable.Rows.Count > 0) { gcolumn = new DataGridViewComboBoxColumn(); DataGridViewComboBoxCell combboxcell = gcolumn.CellTemplate as DataGridViewComboBoxCell; if (combboxcell != null) { combboxcell.DataSource = mtable; combboxcell.ValueMember = "Key"; combboxcell.DisplayMember = "Value"; } } } } if (gcolumn == null) { gcolumn = new DataGridViewTextBoxColumn(); gcolumn.Width = column.MaxLength > 100 ? column.MaxLength : 100; gcolumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; } } gcolumn.Name = column.ColumnName; gcolumn.HeaderText = column.Caption; gcolumn.DataPropertyName = column.ColumnName; //gcolumn.Width = column.MaxLength; //gcolumn.Width = column.MaxLength > 100 ? column.MaxLength : 100; //gcolumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader; grid.Columns.Add(gcolumn); } } grid.AutoGenerateColumns = false; grid.DataSource = GetBindingSource(table); } else { DataColumn column; string mapInfo; foreach (DataGridViewColumn gcolumn in grid.Columns) { column = table.Columns[gcolumn.DataPropertyName]; if (column != null) { mapInfo = TableUtil.StrProperty(column, "MapInfo"); if (!mapInfo.Equals("")) { DataMap dm = SystemContext.MapManager.FromMapInfo(mapInfo); if (dm != null) { DataTable mtable = dm.GetMapTable(null); if (mtable != null && mtable.Rows.Count > 0) { DataGridViewComboBoxCell combboxcell = gcolumn.CellTemplate as DataGridViewComboBoxCell; if (combboxcell != null) { combboxcell.DataSource = mtable; combboxcell.ValueMember = "Key"; combboxcell.DisplayMember = "Value"; } } } } } } grid.AutoGenerateColumns = false; grid.DataSource = GetBindingSource(table); } grid.CellLeave -= new DataGridViewCellEventHandler(DataGridView_CellLeave); grid.CellLeave += new DataGridViewCellEventHandler(DataGridView_CellLeave); }