ASP.NET Ajax ReorderList - Une manière de désactiver des éléments spécifiques d'être glissés et déposés?
-
21-09-2019 - |
Question
J'ai un ReorderList ajax controltoolkit dans une application asp.net.
Je dois désactiver certaines étapes spécifiques d'être réorganisés. Ceci doit être fait dynamiquement. Toutes les étapes sont consécutives et commencent dès le début, mais on ne sait pas combien de temps d'exécution jusqu'à ce que doivent être désactivés d'être réorganisés plus loin.
J'ai essayé le e.item.enabled = false pour reorderlist_itemdatabound mais ce lien juste handicapés. Je dois désactiver le gestionnaire de glisser.
Toute aide est grandement appréciée. Merci!
La solution
Pour être honnête, je ne suis pas trop au courant de ce contrôle, mais ...
Vous devez cacher le gestionnaire de glisser div (ou tout ce qui est dans le «DragHandleTemplate je crois) et / ou changer sa catégorie. Deux suggestions:
1) Ajouter un script de démarrage javascript pour désactiver les divs en question.
2) Sous-classe ce contrôle ... remplacer la méthode render (). Remplacez-le par le code d'origine de ReorderList, mais il faut vérifier le point pour voir si vous devez rendre la poignée de déplacement.
Autres conseils
en tant que solution de contournement pour désactiver glisser-déposer pendant un certain point - on peut définir la largeur = 0 à la commande à l'intérieur
<DragHandleTemplate> </DragHandleTemplate>
. Ainsi, l'utilisateur ne sera pas en mesure de choisir l'élément pour glisser.
Supposons que vous avez une image avec id dragme
dans DragHandleTemplate
; vous pouvez le faire dans le gestionnaire de ItemDataBound
:
Image dragMe = (Image)((TableRow)e.Item.Controls[0].Controls[0]).Cells[0].Controls[0].FindControl("dragMe");
dragMe.Style.Add(HtmlTextWriterStyle.Visibility, "hidden");
De cette façon, vous préservez l'alignement.