I am working off of the demo code for Rad Grid drag and drop functionality, and I cannot seem to get any values in the DraggedItems collection on the RowDrop server event.
In the following code, e.HtmlElement = "" and e.DraggedItems.Count = 0. Has anyone run into the same issue? Am I missing something here. I do not need to use any of the client events, so nothing is being affected by OnRowDropping. I am basically just dragging to reorder within the grid. Any help would be appreciated.
FYI, this grid is within a user control within an ASP.NET Ajax Tab Control, not the telerik tab control. The UI does not reflect the item that I am dragging, when I am dragging it. It just shows an thin line (like an empty row). If I drag off of the grid, then select another item, and drag again, it will show an item being dragged and the code below works fine, then if I try again it does not.
Protected Sub grdQuoteDetails_RowDrop(ByVal sender As Object, ByVal e As GridDragDropEventArgs) If String.IsNullOrEmpty(e.HtmlElement) Then If e.DraggedItems(0).OwnerGridID = grdQuoteDetails.ClientID Then ' items are drag from quote details If e.DestDataItem IsNot Nothing AndAlso e.DestDataItem.OwnerGridID = grdQuoteDetails.ClientID Then 'reorder items in pending grid Dim pendingDetails As IList(Of Model.QuoteDetail) pendingDetails = PendingQuoteDetails Dim quoteDetail As Model.QuoteDetail = GetQuoteDetail(pendingDetails, DirectCast(e.DestDataItem.GetDataKeyValue("ID"), Integer)) Dim destinationIndex As Integer = pendingDetails.IndexOf(quoteDetail) If ((e.DropPosition = GridItemDropPosition.Above) _ AndAlso (e.DestDataItem.ItemIndex > e.DraggedItems(0).ItemIndex)) Then destinationIndex = (destinationIndex - 1) End If If ((e.DropPosition = GridItemDropPosition.Below) _ AndAlso (e.DestDataItem.ItemIndex < e.DraggedItems(0).ItemIndex)) Then destinationIndex = (destinationIndex + 1) End If Dim detailsToMove As New List(Of Model.QuoteDetail)() For Each draggedItem As GridDataItem In e.DraggedItems Dim tmpDetail As Model.QuoteDetail = GetQuoteDetail(pendingDetails, DirectCast(draggedItem.GetDataKeyValue("ID"), Integer)) If tmpDetail IsNot Nothing Then detailsToMove.Add(tmpDetail) End If Next For Each detailToMove As Model.QuoteDetail In detailsToMove pendingDetails.Remove(detailToMove) pendingDetails.Insert(destinationIndex, detailToMove) Next PendingQuoteDetails = pendingDetails grdQuoteDetails.Rebind() End If End If End If End Sub