I have a fairly simple blazor server side app and am writing data to my db based on drag/drop. I have my functions working to get the id/type at dragstart and the same at drop however the data I store from the dragstart function reverts/dissappears when I start my drop function. What am I doing wrong?
dragged Element
<table class="table AssignmentsTable" draggable="true"
@ondragstart="@(e => AssignmentOnDragStart(item.Id, "Location"))"
@ondragstart:stopPropagation>
<tr>
<td>
<span>@item?.Description</span>
</td>
</tr>
</table>
dropped Element
<h5 @ondrop="@(e => AssignmentOnDrop((ParentID ?? 0), "Company"))" ondragover="event.preventDefault()">@company.Name</h5>
.razor (code)
string storedAssigneeType;
int storedAssigneeID;
string storedAssignmentType;
int storedAssignmentID;
public async void AssignmentOnDragStart(int id, string type)
{
await JSRuntime.InvokeVoidAsync("console.log", $"Before: {type}: {id.ToString()}");
storedAssigneeID = id;
storedAssigneeType = type;
await JSRuntime.InvokeVoidAsync("console.log", $"After: {storedAssigneeType}: {storedAssigneeID.ToString()}");
}
public async void AssignmentOnDrop(int id, string type)
{
await JSRuntime.InvokeVoidAsync("console.log", $"Stored Assignee: {storedAssigneeType}: {storedAssigneeID.ToString()}");
await JSRuntime.InvokeVoidAsync("console.log", $"{type}: {id.ToString()}");
storedAssignmentID = id;
storedAssignmentType = type;
var result = @Service.AddAssignment(storedAssigneeType, storedAssigneeID, storedAssignmentType, storedAssignmentID);
await JSRuntime.InvokeVoidAsync("console.log", $"{result.ToString()}");
}
I'm new so I've tried a lot of the wrong things. I tried {get;set;} for the variables, public/private, and some other items. I know I am just doing something dumb but am at a loss (or its too late at night). There were 2 other questions on the stack that seemed very similar but neither produced a working solution. Help please and thanks.