ASP.NET Ajax ReOrderList - 禁止拖放特定项目的任何方法?

时间:2009-11-20 16:00:14

标签: asp.net ajax ajaxcontroltoolkit reorderlist

我在asp.net应用程序中有一个ajax controltoolkit重新排序列表。

我需要禁用重新排序的某些特定步骤。这必须动态完成。所有步骤都是连续的并且从头开始,但直到运行时才知道需要禁止多少步骤被重新排序。

我为reorderlist_itemdatabound尝试了e.item.enabled = false,但这只是禁用链接。我需要禁用拖动处理程序。

非常感谢任何帮助。谢谢!

3 个答案:

答案 0 :(得分:0)

说实话,我对这种控制并不太熟悉,但是......

您需要隐藏拖动处理程序div(或者我认为的'DragHandleTemplate'中的任何内容)和/或更改其类。两个建议:

1)添加一个javascript启动脚本以禁用有问题的div。

2)对此控件进行子类化...覆盖Render()方法。将其替换为ReorderList中的原始代码,但检查Item以查看是否应该渲染拖动句柄。

答案 1 :(得分:0)

作为禁用某些项目拖放的解决方法 - 您可以将width = 0设置为

 <DragHandleTemplate> </DragHandleTemplate>
内的控件。因此,用户将无法选择拖动项目。

答案 2 :(得分:0)

假设您在dragme中有一个ID为DragHandleTemplate的图片;你可以在ItemDataBound处理程序中执行此操作:

Image dragMe = (Image)((TableRow)e.Item.Controls[0].Controls[0]).Cells[0].Controls[0].FindControl("dragMe");

dragMe.Style.Add(HtmlTextWriterStyle.Visibility, "hidden");

这样可以保留对齐方式。