public override void Assign(CollectionItem source)
 {
     GridViewSpinEditColumn cxGridViewColumn = source as GridViewSpinEditColumn;
     this.Context = cxGridViewColumn.Context;
     IsCustomDataItem = cxGridViewColumn.IsCustomDataItem;
     base.Assign(source);
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }