RMN.Blazor.DragDrop
2.2.0
dotnet add package RMN.Blazor.DragDrop --version 2.2.0
NuGet\Install-Package RMN.Blazor.DragDrop -Version 2.2.0
<PackageReference Include="RMN.Blazor.DragDrop" Version="2.2.0" />
paket add RMN.Blazor.DragDrop --version 2.2.0
#r "nuget: RMN.Blazor.DragDrop, 2.2.0"
// Install RMN.Blazor.DragDrop as a Cake Addin #addin nuget:?package=RMN.Blazor.DragDrop&version=2.2.0 // Install RMN.Blazor.DragDrop as a Cake Tool #tool nuget:?package=RMN.Blazor.DragDrop&version=2.2.0
Blazor.DragDrop
This component provides user-friendly drag and drop functionality for Blazor applications.
Features
- Drag and drop items within a list, both horizontally and vertically.
- Drag and drop items between multiple lists. (Coming soon)
- Choose any HTML element to serve as the parent.
- Animated movement of items.
- Support for both desktop and mobile devices.
- And more...
How to set up
Install the
RMN.Blazor.DragDrop
NuGet package in your project.Add the component namespace to your
_Imports.razor
file:
@using RMN.Blazor.DragDrop
- Add
SortableJS
:
<script src="https://cdn.jsdelivr.net/npm/sortablejs@latest/Sortable.min.js"></script>
Parameters and Events
Name | Type | Default | Description |
---|---|---|---|
Items | List<TItem> | [ ] | List of items. |
OrderPropertyName | String | "" | Item's order property to update after reordering the list. |
RootElement | String | "div" | Element that will serve as the parent. |
Id | String | Guid | Id for the parent element. |
Class | String | "" | CSS classes for the parent element. |
Style | String | "" | Inline styles for the parent element. |
DragHandleClass | String | "" | CSS class for the drag handle. |
UndraggableItemClass | String | "" | CSS class for undraggable items. |
AllowReorder | Boolean | true | Allow reordering the list. |
AllowDragging | Boolean | true | Allow dragging of items. |
Context | String | context | Parameter name for the list items. |
OnUpdate | EventCallback | The method to be called after reordering the list. |
Examples
Basic example
<DragDropList Items="Items" Context="item">
<p>@item.Name</p>
</DragDropList>
Advanced example
<DragDropList Items="Items"
OrderPropertyName="Order"
RootElement="ul"
DragHandleClass="drag-handle"
UndraggableItemClass="undraggable-item"
Context="item"
OnUpdate="OnListUpdateAsync">
<li class="@(item.Disabled ? "undraggable-item" : null)>
<i class="drag-handle icon-drag-handle"></i>
<span>@item.Name</span>
</li>
</DragDropList>
For updating the order property of your items after reordering the list, you can either specify the OrderPropertyName
as shown in the example above, or update manually:
public async Task OnListUpdateAsync()
{
Items.ForEach(x => x.Order = Items.IndexOf(x));
// Saving to database or something else
}
Styling
For styling the item that is being dragged, use the class selector .dragging-item
.
License
Project is licensed under the MIT license.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. |
-
net5.0
- Microsoft.AspNetCore.Components.Web (>= 5.0.17)
-
net6.0
- Microsoft.AspNetCore.Components.Web (>= 6.0.36)
-
net7.0
- Microsoft.AspNetCore.Components.Web (>= 7.0.20)
-
net8.0
- Microsoft.AspNetCore.Components.Web (>= 8.0.11)
-
net9.0
- Microsoft.AspNetCore.Components.Web (>= 9.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version 2.2.0
NEW FEATURES:
- Added support for .NET 9.0:
Fully compatible with the latest .NET version.
- Switched to wildcard versions for package dependencies:
Always use the latest minor and patch versions.
OTHER CHANGES:
- Minor corrections.
- Updated documentation.