diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/EntityExtensionConfiguration.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/EntityExtensionConfiguration.cs index 82c6658c23..b4e0014775 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/EntityExtensionConfiguration.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/EntityExtensionConfiguration.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Collections.Immutable; +using System.Linq; using JetBrains.Annotations; using Volo.Abp.Localization; @@ -74,7 +75,7 @@ public class EntityExtensionConfiguration [NotNull] public virtual ImmutableList GetProperties() { - return Properties.Values.ToImmutableList(); + return Properties.Values.OrderBy(t => t.UI.Order).ToImmutableList(); } private static void NormalizeProperty(ExtensionPropertyConfiguration propertyInfo) diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiConfiguration.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiConfiguration.cs index 38b47b71ad..3c4a0e921f 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiConfiguration.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiConfiguration.cs @@ -4,6 +4,8 @@ namespace Volo.Abp.ObjectExtending.Modularity; public class ExtensionPropertyUiConfiguration { + public const int DefaultOrder = 1000; + [NotNull] public ExtensionPropertyUiTableConfiguration OnTable { get; } @@ -15,6 +17,8 @@ public class ExtensionPropertyUiConfiguration [NotNull] public ExtensionPropertyLookupConfiguration Lookup { get; set; } + + public int Order { get; set; } public ExtensionPropertyUiConfiguration() { @@ -22,5 +26,6 @@ public class ExtensionPropertyUiConfiguration OnCreateForm = new ExtensionPropertyUiFormConfiguration(); OnEditForm = new ExtensionPropertyUiFormConfiguration(); Lookup = new ExtensionPropertyLookupConfiguration(); + Order = DefaultOrder; } } diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs index 642cd07a84..0419fdc8de 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs @@ -174,6 +174,7 @@ public static class ModuleExtensionConfigurationHelper property.DefaultValue = propertyConfig.DefaultValue; property.DefaultValueFactory = propertyConfig.DefaultValueFactory; property.Lookup = propertyConfig.UI.Lookup; + property.Order = propertyConfig.UI.Order; foreach (var configuration in propertyConfig.Configuration) { property.Configuration[configuration.Key] = configuration.Value; diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionInfo.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionInfo.cs index 69b7123c50..3fd57cb4a7 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionInfo.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionInfo.cs @@ -69,8 +69,7 @@ public class ObjectExtensionInfo [NotNull] public virtual ImmutableList GetProperties() { - return Properties.OrderBy(t => t.Key) - .Select(t => t.Value) + return Properties.OrderBy(t => t.Value.Order).Select(t => t.Value) .ToImmutableList(); } diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfo.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfo.cs index f89035d733..e9c01376fc 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfo.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfo.cs @@ -59,6 +59,12 @@ public class ObjectExtensionPropertyInfo : IHasNameWithLocalizableDisplayName, I [NotNull] public ExtensionPropertyLookupConfiguration Lookup { get; set; } + + /// + /// The Display order of the Property. + /// Default value: 1000. + /// + public int Order { get; set; } public ObjectExtensionPropertyInfo( [NotNull] ObjectExtensionInfo objectExtension,