|
@@ -244,9 +244,30 @@ public abstract class DynamicGrid<T> : BaseDynamicGrid, IDynamicGridUIComponentP
|
|
|
|
|
|
public override DynamicGridColumns GenerateColumns()
|
|
|
{
|
|
|
- var cols = IsDirectEditMode()
|
|
|
- ? new Columns<T>(ColumnTypeFlags.IncludeVisible | ColumnTypeFlags.IncludeForeignKeys)
|
|
|
- : new Columns<T>(ColumnTypeFlags.IncludeVisible | ColumnTypeFlags.IncludeLinked);
|
|
|
+ var defaultCols = DefaultColumns.GetDefaultColumns(typeof(T)).Select(x => x.Property).ToArray();
|
|
|
+
|
|
|
+ Columns<T> cols;
|
|
|
+ if(defaultCols.Length == 0)
|
|
|
+ {
|
|
|
+ cols = IsDirectEditMode()
|
|
|
+ ? new Columns<T>(ColumnTypeFlags.IncludeVisible | ColumnTypeFlags.IncludeForeignKeys)
|
|
|
+ : new Columns<T>(ColumnTypeFlags.IncludeVisible | ColumnTypeFlags.IncludeLinked);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ IEnumerable<IProperty> propList;
|
|
|
+ if (IsDirectEditMode())
|
|
|
+ {
|
|
|
+ propList = defaultCols
|
|
|
+ .Where(x => x.Parent is null || !x.HasParentEntityLink() || (x.IsForeignKey() && !x.Parent.HasParentEntityLink()));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ // Ignore foreign keys.
|
|
|
+ propList = defaultCols.Where(x => !x.IsForeignKey());
|
|
|
+ }
|
|
|
+ cols = Columns.None<T>().AddRange(propList.Select(x => new Column<T>(x)));
|
|
|
+ }
|
|
|
|
|
|
var columns = ExtractColumns(cols);
|
|
|
OnGenerateColumns?.Invoke(this, new GenerateColumnsEventArgs(columns));
|