/*private void BindGridColumns() { using (EditConfigurationProvider provider = new EditConfigurationProvider()) { Aspect.Domain.Product prod = provider.GetProduct(this.ProductID); if (prod == null) return; this.Title = HeaderLiteral.Text = string.Format(HeaderLiteral.Text, prod.PublicName, prod.Version == null ? string.Empty : prod.Version.ToString()); HeaderDateLiteral.Text = string.Format(HeaderDateLiteral.Text, DateTime.Now.ToShortDateString(), DateTime.Now.ToLongTimeString()); //--- SelectorProductGridField selector = new SelectorProductGridField(string.Empty, "ConfigurationID", true); selector.ItemStyle.Width = new Unit(15, UnitType.Pixel); EditConfigurationGrid.Columns.Add(selector); //--- bool actionColumnAdded = false; List<GridColumn> list = provider.GetGridColumns(); foreach (GridColumn item in list) { BoundField field = null; EditableGridColumn editableColumn = item as EditableGridColumn; if (editableColumn == null) { if (item.GridColumnType == TypeEnum.Boolean) { field = new BooleanGridField(); field.DataField = item.DataItem; field.HeaderText = item.Name; field.ReadOnly = true; } else { if (!actionColumnAdded) { field = new ActionProductGridField(item.Name, item.DataItem); actionColumnAdded = true; } else { field = new ProductGridField(item.Name, item.DataItem); } field.ItemStyle.Font.Size = new FontUnit(FontSize.Smaller); } //field = new ActionProductGridField(item.Name, item.DataItem); } else { if (editableColumn.View == EditableGridColumn.GridColumnView.TextBox) { field = new TextBoxProductGridField(editableColumn); } else if (editableColumn.View == EditableGridColumn.GridColumnView.DropDown) { field = new DropDownProductGridField(editableColumn); } else if (editableColumn.View == EditableGridColumn.GridColumnView.CheckBox) { field = new CheckBoxProductGridField(editableColumn); } } if (field != null) { EditConfigurationGrid.Columns.Add(field); //EditAddedConfigurationGrid.Columns.Add(field); } } } }*/ private void BindGridColumns2() { using (EditConfigurationProvider provider = new EditConfigurationProvider()) { Aspect.Domain.Product prod = provider.GetProduct(this.ProductID); if (prod == null) return; this.Title = HeaderLiteral.Text = string.Format(HeaderLiteral.Text, prod.PublicName, prod.Version == null ? string.Empty : prod.Version.ToString()); HeaderDateLiteral.Text = string.Format(HeaderDateLiteral.Text, DateTime.Now.ToShortDateString(), DateTime.Now.ToLongTimeString()); // извлекаем ширины колонок для данного класса List<ColumnWidth> columnWidths = provider.ColumnWidths.Where(p => p.ClassificationTreeID == new Guid("11110000-0000-0000-0000-000011110001") && p.UserID == this.User.ID).ToList(); List<GridColumn> list = provider.GetGridColumns(); // sort columns by user's order list = list.OrderBy(clm => columnWidths.Exists(w => w.ColumnID == clm.ID) ? columnWidths.Single(w => w.ColumnID == clm.ID).Index : Int32.MaxValue).ToList(); foreach (GridColumn column in list) { Ext.Net.ColumnBase extjsColumn = null; EditableGridColumn editableColumn = column as EditableGridColumn; if (editableColumn == null) { if (column.GridColumnType == TypeEnum.Boolean) { extjsColumn = new Ext.Net.CheckColumn(); extjsColumn.DataIndex = column.DataItem; extjsColumn.Header = column.Name; } else { extjsColumn = new Ext.Net.Column(); extjsColumn.DataIndex = column.DataItem; extjsColumn.Header = column.Name; } } else { if (editableColumn.View == EditableGridColumn.GridColumnView.TextBox) { extjsColumn = new Ext.Net.Column(); if (editableColumn.Type == typeof(int) || editableColumn.Type == typeof(decimal)) { Ext.Net.TextField field = new Ext.Net.TextField(); field.Regex = @"^\d+(,\d+)?$"; field.RegexText = "0"; extjsColumn.Editor.Add(field); } else { extjsColumn.Editor.Add(new Ext.Net.TextField()); } extjsColumn.DataIndex = column.DataItem; extjsColumn.Header = column.Name; extjsColumn.Editable = true; } else if (editableColumn.View == EditableGridColumn.GridColumnView.DropDown) { extjsColumn = new Ext.Net.Column(); extjsColumn.DataIndex = column.DataItem; extjsColumn.Header = column.Name; extjsColumn.Editable = true; StringBuilder renderFunction = new StringBuilder(); renderFunction.AppendLine("function(value){"); Ext.Net.ComboBox field = new Ext.Net.ComboBox(); field.Editable = false; foreach (Pair<Guid, string> itemDropList in (editableColumn.DataSource.DataSource as List<Pair<Guid, string>>)) { field.Items.Add(new Ext.Net.ListItem(itemDropList.Second, itemDropList.First.ToString())); renderFunction.AppendFormat("if (value=='{0}') return '{1}';\n", itemDropList.First.ToString(), itemDropList.Second); } renderFunction.AppendLine("return 'error'; }"); extjsColumn.Editor.Add(field); extjsColumn.Renderer.Handler = renderFunction.ToString(); } else if (editableColumn.View == EditableGridColumn.GridColumnView.CheckBox) { extjsColumn = new Ext.Net.CheckColumn(); extjsColumn.DataIndex = column.DataItem; extjsColumn.Header = column.Name; extjsColumn.Editable = true; extjsColumn.Editor.Add(new Ext.Net.Checkbox()); } } if (extjsColumn != null) { // setting visibility column extjsColumn.Hidden = columnWidths.Exists(w => w.ColumnID == column.ID) ? columnWidths.Single(w => w.ColumnID == column.ID).Hidden : false; extjsColumn.ColumnID = column.ID.ToString(); foreach (int width in columnWidths.Where(p => p.ColumnID == column.ID).Select(p => p.Width)) { extjsColumn.Width = width; } Store1.AddField( new Ext.Net.RecordField(extjsColumn.DataIndex)); GridPanel.ColumnModel.Columns.Add(extjsColumn); } } // дополнительные поля Store1.AddField(new Ext.Net.RecordField("ID")); Store1.AddField(new Ext.Net.RecordField("CID")); Store1.AddField(new Ext.Net.RecordField("ConfID")); } }
private void BindGridColumns() { using (EditConfigurationProvider provider = new EditConfigurationProvider()) { Aspect.Domain.Product prod = provider.GetProduct(this.ProductID); if (prod == null) return; this.Title = HeaderLiteral.Text = string.Format(HeaderLiteral.Text, prod.PublicName, prod.Version == null ? string.Empty : prod.Version.ToString()); HeaderDateLiteral.Text = string.Format(HeaderDateLiteral.Text, DateTime.Now.ToShortDateString(), DateTime.Now.ToLongTimeString()); //--- SelectorProductGridField selector = new SelectorProductGridField(string.Empty, "ConfigurationID", true); selector.ItemStyle.Width = new Unit(15, UnitType.Pixel); EditConfigurationGrid.Columns.Add(selector); //--- bool actionColumnAdded = false; List<GridColumn> list = provider.GetGridColumns(); foreach (GridColumn item in list) { BoundField field = null; EditableGridColumn editableColumn = item as EditableGridColumn; if (editableColumn == null) { if (item.GridColumnType == TypeEnum.Boolean) { field = new BooleanGridField(); field.DataField = item.DataItem; field.HeaderText = item.Name; field.ReadOnly = true; } else { if (!actionColumnAdded) { field = new ActionProductGridField(item.Name, item.DataItem); actionColumnAdded = true; } else { field = new ProductGridField(item.Name, item.DataItem); } field.ItemStyle.Font.Size = new FontUnit(FontSize.Smaller); } //field = new ActionProductGridField(item.Name, item.DataItem); } else { if (editableColumn.View == EditableGridColumn.GridColumnView.TextBox) { field = new TextBoxProductGridField(editableColumn); } else if (editableColumn.View == EditableGridColumn.GridColumnView.DropDown) { field = new DropDownProductGridField(editableColumn/*, editableColumn.DataSource.DataSource*/); } else if (editableColumn.View == EditableGridColumn.GridColumnView.CheckBox) { field = new CheckBoxProductGridField(editableColumn); } } if (field != null) { EditConfigurationGrid.Columns.Add(field); //EditAddedConfigurationGrid.Columns.Add(field); } } } }
protected void Page_Load(object sender, EventArgs e) { using (EditConfigurationProvider provider = new EditConfigurationProvider()) { Aspect.Domain.Product prodLeft = provider.GetProduct(this.ProductID1); Aspect.Domain.Product prodRight = provider.GetProduct(this.ProductID2); HeaderLiteralLeft.Text = string.Format(HeaderLiteralLeft.Text, prodLeft.PublicName, prodLeft.Version == null ? string.Empty : prodLeft.Version.ToString()); HeaderLiteralRight.Text = string.Format(HeaderLiteralRight.Text, prodRight.PublicName, prodRight.Version == null ? string.Empty : prodRight.Version.ToString()); } this.Title = String.Format("Сравнение: {0} | {1}", HeaderLiteralLeft.Text, HeaderLiteralRight.Text); BindGridColumns(); BindData(); }