我有一个asp.net应用程序内的ajax controltoolkit重新排序列表。ASP.NET Ajax ReOrderList - 禁止拖放特定项目的任何方法?
我需要禁用某些特定的步骤重新排序。这必须动态完成。所有的步骤都是连续的,从头开始,但是直到运行时才知道有多少需要被禁用,以便进一步重新排序。
我试过reorderlist_itemdatabound的e.item.enabled = false,但这只是禁用链接。我需要禁用拖动处理程序。
任何帮助是极大的赞赏。谢谢!
我有一个asp.net应用程序内的ajax controltoolkit重新排序列表。ASP.NET Ajax ReOrderList - 禁止拖放特定项目的任何方法?
我需要禁用某些特定的步骤重新排序。这必须动态完成。所有的步骤都是连续的,从头开始,但是直到运行时才知道有多少需要被禁用,以便进一步重新排序。
我试过reorderlist_itemdatabound的e.item.enabled = false,但这只是禁用链接。我需要禁用拖动处理程序。
任何帮助是极大的赞赏。谢谢!
说实话,我不是太熟悉的控制,但...
你需要隐藏拖动处理程序股利(或无论是在“DragHandleTemplate”我相信)和/或改变它的类。两个建议:
1)添加一个JavaScript启动脚本来禁用有问题的div。
2)此控件的子类...重写Render()方法。将其替换为ReorderList中的原始代码,但检查Item以查看是否应呈现拖动手柄。
作为解决方法,禁用某些项目的拖放 - 您可以将宽度设置为0到
<DragHandleTemplate> </DragHandleTemplate>
之内的控件。因此用户将无法挑选该物品进行拖拽。
假设您的图像编号为dragme
,在DragHandleTemplate
;你可以在ItemDataBound
处理程序做到这一点:
Image dragMe = (Image)((TableRow)e.Item.Controls[0].Controls[0]).Cells[0].Controls[0].FindControl("dragMe");
dragMe.Style.Add(HtmlTextWriterStyle.Visibility, "hidden");
这样你保持一致。