public void OnMetadataCreated(ModelMetadata metadata) { if (metadata == null) { throw new ArgumentNullException("metadata"); } var column = this.CreateColumn(); if (!this.Ignore) { column.DataIndex = metadata.PropertyName; if (metadata.AdditionalValues.ContainsKey(ModelFieldAttribute.KEY)) { string name = ((ModelFieldAttribute)metadata.AdditionalValues[ModelFieldAttribute.KEY]).Name; if (name.IsNotEmpty()) { column.DataIndex = name; } } column.Text = Regex.Replace(metadata.PropertyName, "([a-z])([A-Z])", "$1 $2"); BaseControl.Apply(column, this); if (this.EditorRendererHandler != null) { column.EditorRenderer.Fn = this.EditorRendererHandler; } if (this.RendererHandler != null) { column.Renderer.Fn = this.RendererHandler; } if (this.Width != 0) { column.Width = this.Width; } } else { metadata.AdditionalValues[ColumnBaseAttribute.KEY_IGNORE] = true; } metadata.AdditionalValues[ColumnBaseAttribute.KEY] = column; metadata.AdditionalValues[ColumnBaseAttribute.KEY_ORDER] = this.Order; }