К сожалению, нет способа получить держатель перетаскивания из ReorderListItem. Вместо этого вы можете создать серверный элемент управления внутри DragHandleTemplate (например, PlaceHolder), а затем найти его в обработчике событий ItemDataBound:
В файле aspx:
<DragHandleTemplate>
<div class="dragHandle">
<asp:Label ID="lblDragHandle" runat="server" />
</div>
</DragHandleTemplate>
В файле aspx.cs:
protected void ReorderList1_ItemDataBound(object sender, AjaxControlToolkit.ReorderListItemEventArgs e)
{
Label lblDragHandle = (Label)FindControlRecursive(e.Item, "lblDragHandle");
lblDragHandle.Text = e.Item.ItemIndex.ToString();
}
private Control FindControlRecursive(Control root, string id)
{
if (root.ID == id)
{
return root;
}
foreach (Control c in root.Controls)
{
Control t = FindControlRecursive(c, id);
if (t != null)
{
return t;
}
}
return null;
}
Я скопировал FindControlRecursive метод из блога Джеффа.