|
@@ -683,6 +683,22 @@ public static class DynamicGridUtils
|
|
|
return grid.EditItems(items, PageDataHandler: pageDataHandler, PreloadPages: preloadPages);
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// Edit (using a grid sourced with <see cref="CreateDynamicGrid{T}(Type)"/>) a <typeparamref name="T"/>, by loading it from the database.
|
|
|
+ /// </summary>
|
|
|
+ public static bool EditEntity<T>(Guid id, Func<Type, CoreTable?>? pageDataHandler = null, bool preloadPages = false, Action<DynamicGrid<T>>? customiseGrid = null)
|
|
|
+ where T : Entity, IRemotable, IPersistent, new()
|
|
|
+ {
|
|
|
+ var grid = (CreateDynamicGrid<T>(typeof(DynamicDataGrid<>)) as DynamicDataGrid<T>)!;
|
|
|
+ customiseGrid?.Invoke(grid);
|
|
|
+ var item = Client.Query<T>(
|
|
|
+ new Filter<T>(x => x.ID).IsEqualTo(id),
|
|
|
+ grid.LoadEditorColumns())
|
|
|
+ .ToObjects<T>().FirstOrDefault();
|
|
|
+ if (item is null) return false;
|
|
|
+ return grid.EditItems(new T[] { item }, PageDataHandler: pageDataHandler, PreloadPages: preloadPages);
|
|
|
+ }
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
#region Drag + Drop
|