protected void btnUpdateColumnTable_Click(object sender, DirectEventArgs e) { try { DataTable table = DataHandler.GetInstance().ExecuteDataTable("select top 1 * from " + this.TableName); string[] columnName = txtSelectedColumnName.Text.Split(','); foreach (string item in columnName) { if (string.IsNullOrEmpty(item) == false) { GridPanelColumnInfo columnInfo = new GridPanelColumnInfo(0, this.TableName, this.GridPanelName, item, item, 100, 0, true, "", true, false, "", "", "", 0, "", table.Columns[item].DataType.ToString(), true, false); GridController.GetInstance().InsertColumnInformation(columnInfo); } } LoadColumnTable(); if (AfterCreateNewColumn != null) { AfterCreateNewColumn(this, null); } } catch (Exception ex) { Dialog.ShowNotification(ex.Message); } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnUpdateComboBox_Click(object sender, DirectEventArgs e) { try { if (RowSelectionModel2.SelectedRow != null) { GridPanelColumnInfo col = GridController.GetInstance() .GetColumnInfo(int.Parse(RowSelectionModel2.SelectedRow.RecordID)); col.ComboBoxTable = cbTableComboBox.GetValue().ToString(); col.DisplayFieldComboBox = cbDisplayColumn.GetValue().ToString(); col.ValueFieldComboBox = cbValueColumn.GetValue().ToString(); col.WhereFilterComboBox = txtWhereFilter.Text; if (!string.IsNullOrEmpty(cbMasterColumnID.SelectedItem.Value)) { col.MasterColumnComboID = int.Parse(cbMasterColumnID.SelectedItem.Value); } col.AllowComboBoxOnGrid = true; GridController.GetInstance().UpdateColumnInformation(col); wdSetComboBoxOnGrid.Hide(); } } catch (Exception ex) { Dialog.ShowError(ex.Message); } }
protected void btnConfigComboBox_Click(object sender, DirectEventArgs e) { GridPanelColumnInfo col = GridController.GetInstance().GetColumnInfo(int.Parse(RowSelectionModel2.SelectedRow.RecordID)); cbTableComboBox.SetValue(col.ComboBoxTable); cbDisplayColumn.SetValue(col.DisplayFieldComboBox); cbValueColumn.SetValue(col.ValueFieldComboBox); txtWhereFilter.Text = col.WhereFilterComboBox; if (col.MasterColumnComboID.Value != 0) { hdfColumnID.Value = col.MasterColumnComboID; } wdSetComboBoxOnGrid.Show(); }
/// <summary> /// Load column vào GridPanel /// </summary> private void AddColumn() { if (columnList == null) { columnList = GridController.GetInstance().GetColumnInfo(this.ID, TableName, 1); } datatable = DataController.DataHandler.GetInstance().ExecuteDataTable("select top 1 * from " + TableName); if (columnList.FirstOrDefault() == null) { foreach (DataColumn item in datatable.Columns) { Column column = new Column(); column.DataIndex = item.ColumnName; column.Header = item.ColumnName; GridPanel1.ColumnModel.Columns.Add(column); if (item.DataType.ToString().Equals("System.DateTime")) { column.Renderer.Fn = "GetDateFormat"; } if (column.Editor.Count == 0) { switch (GetColumnDataType(datatable, item.ColumnName)) { case "System.Decimal": case "System.Int32": Ext.Net.SpinnerField spin = new SpinnerField(); spin.ID = item.ColumnName + "spin"; column.Editor.Add(spin); break; case "System.DateTime": Ext.Net.DateField df = new Ext.Net.DateField(); df.ID = item.ColumnName + "datefield"; column.Editor.Add(df); break; case "System.String": Ext.Net.TextField text = new Ext.Net.TextField(); text.ID = item.ColumnName + "string"; column.Editor.Add(text); break; case "System.Boolean": Ext.Net.Checkbox chk = new Checkbox(); chk.ID = item.ColumnName + "chk"; column.Editor.Add(chk); break; } } } } else { string listener = ""; bool hasComboBox = false; foreach (GridPanelColumnInfo columnInfo in columnList) { Column column = new Column(); column.DataIndex = columnInfo.ColumnName; column.Header = columnInfo.ColumnHeader; if (columnInfo.Width.HasValue && columnInfo.Width != 0) { column.Width = columnInfo.Width.Value; } GridPanel1.ColumnModel.Columns.Add(column); if (string.IsNullOrEmpty(columnInfo.RenderJS) == false) { column.Renderer.Fn = columnInfo.RenderJS; } if (columnInfo.AllowComboBoxOnGrid && string.IsNullOrEmpty(columnInfo.TableName) == false) { hasComboBox = true; Ext.Net.ComboBox cbBox = new ComboBox(); cbBox.LoadingText = "Đang tải..."; cbBox.ID = "combo" + columnInfo.ColumnName; cbBox.DisplayField = "displayField"; cbBox.ValueField = "valueField"; cbBox.EnableViewState = false; column.Editor.Add(cbBox); Store store = CreateStore(cbBox.ID); cbBox.Store.Add(store); storeList.Add(new StoreDaTa(store, columnInfo.ComboBoxTable, columnInfo.DisplayFieldComboBox, columnInfo.ValueFieldComboBox, columnInfo.WhereFilterComboBox, columnInfo.ColumnName, columnInfo.MasterColumnComboID.Value, columnInfo.ID)); if (columnInfo.MasterColumnComboID.HasValue && columnInfo.MasterColumnComboID.Value != 0) { GridPanelColumnInfo col = columnList.Where(p => p.ID == columnInfo.MasterColumnComboID.Value).FirstOrDefault(); if (col != null) { listener += string.Format("case \"{0}\": this.getColumnModel().getCellEditor(e.column, e.row).field.allQuery = e.record.get('{1}');break;", columnInfo.ColumnName, col.ColumnName); } } } if (column.Editor.Count == 0) { switch (columnInfo.DataType) { case "System.Decimal": case "System.Int32": Ext.Net.SpinnerField spin = new SpinnerField(); spin.ID = columnInfo.ColumnName + "spin"; column.Editor.Add(spin); break; case "System.DateTime": Ext.Net.DateField df = new Ext.Net.DateField(); df.ID = columnInfo.ColumnName + "datefield"; column.Editor.Add(df); break; case "System.String": Ext.Net.TextField text = new Ext.Net.TextField(); text.ID = columnInfo.ColumnName + "string"; column.Editor.Add(text); break; case "System.Boolean": Ext.Net.Checkbox chk = new Checkbox(); chk.ID = columnInfo.ColumnName + "chk"; column.Editor.Add(chk); break; } } } if (!string.IsNullOrEmpty(listener)) { GridPanel1.Listeners.BeforeEdit.Handler = "switch (e.field) {" + listener + "}"; } if (hasComboBox) { GridPanel1.Listeners.AfterEdit.Handler = Store1.ClientID + ".commitChanges();"; GridPanel1.DirectEvents.AfterEdit.Event += new ComponentDirectEvent.DirectEventHandler(AfterEdit_Event); GridPanel1.DirectEvents.AfterEdit.ExtraParams.Add(new Ext.Net.Parameter("id", "e.record.id", ParameterMode.Raw)); GridPanel1.DirectEvents.AfterEdit.ExtraParams.Add(new Ext.Net.Parameter("field", "e.field", ParameterMode.Raw)); GridPanel1.DirectEvents.AfterEdit.ExtraParams.Add(new Ext.Net.Parameter("record", "e.record.data", ParameterMode.Raw, true)); GridPanel1.DirectEvents.AfterEdit.ExtraParams.Add(new Ext.Net.Parameter("value", "e.value", ParameterMode.Raw)); } } }