ASP.NET Ajax ReorderList - Une manière de désactiver des éléments spécifiques d'être glissés et déposés?

StackOverflow https://stackoverflow.com/questions/1771444

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!

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top