public override void Assign(CollectionItem source) { GridViewSpinEditColumn cxGridViewColumn = source as GridViewSpinEditColumn; this.Context = cxGridViewColumn.Context; IsCustomDataItem = cxGridViewColumn.IsCustomDataItem; base.Assign(source); }
public void AddSpinColumn(string fieldName, string caption, Action <GridViewSpinEditColumn> columnSettings) { bool isValid = CheckingBeforeAdd(); // Null when init data to get datasource if (!isValid) { throw new Exception("Cannot model metadata from datasource"); } else if (modelMetadata == null) { return; } var column = new GridViewSpinEditColumn(); columnSettings.Invoke(column); column.FieldName = string.IsNullOrEmpty(column.FieldName) ? fieldName : column.FieldName; column.Caption = string.IsNullOrEmpty(column.Caption) ? caption : column.Caption; AddColumn(column); }
private void AddColumn(GridViewSpinEditColumn column) { column.Context = viewContext; var modelType = modelMetadata.ModelType; PropertyInfo propertyInfo = modelType.GetProperty(column.FieldName); if (propertyInfo != null) { var numberPrecisionAttribute = propertyInfo.GetCustomAttributes(typeof(NumberPrecisionAttribute), true).FirstOrDefault() as NumberPrecisionAttribute; if (numberPrecisionAttribute != null) { column.PropertiesEdit.MaxTotalNumber = numberPrecisionAttribute.MaxDigits; column.PropertiesEdit.MaxNumberAfterDecimalPoint = numberPrecisionAttribute.MaxDigitAfterPoint; } } column.PropertiesEdit.Prepare(); if (!column.IsCustomDataItem) { column.SetDataItemTemplateContent(container => { var objectValue = (container.Grid.DataSource as IEnumerable <object>).ElementAt(container.VisibleIndex); if (objectValue == null) { return; } GridViewSpinEditColumn spinColumn = container.Column as GridViewSpinEditColumn; var rawValue = objectValue.GetType().GetProperty(spinColumn.FieldName).GetValue(objectValue); if (rawValue != null) { var nfi = (System.Globalization.NumberFormatInfo)System.Globalization.CultureInfo.InvariantCulture.NumberFormat.Clone(); nfi.NumberGroupSeparator = column.PropertiesEdit.Currency.ThousandPoint; nfi.NumberDecimalSeparator = column.PropertiesEdit.Currency.DecimalPoint; spinColumn.Context.Writer.Write(column.PropertiesEdit.Prefix + double.Parse(rawValue.ToString()).ToString(nfi) + column.PropertiesEdit.Subfix); } }); } Add(column); }