J'utilise Sitecore 6.6 et j'ai un objet Sublayout avec un modèle de paramètre personnalisé. Le modèle param a la section General habituelle (champs Placeholder et Source de données) et une section "Lock" personnalisée qui a juste un champ case à cocher. J'ai ajouté un validateur de champ personnalisé sur la case à cocher, qui est de s'assurer que si la case est cochée - un DataSource est fourni. Dans ma mise en œuvre de validateur j'ai hérité de la classe StandardValidator et je peux vérifier la valeur de la case à cocher cetteObtenir une source de données Sublayout dans l'implémentation du validateur
var currentItem = GetItem();
currentItem.Fields["Lock"].Value
ainsi que par ce paramètre
ControlValidationValue
Cependant, je ne peux pas trouver un moyen d'accéder aux données champ source. Tous les guides que j'ai trouvé l'obtenir en utilisant le code ci-dessous, mais cela vaut pour les classes héritant du (contrôleur) rendu classe Web.UI.UserControl
if(Parent is Sublayout)
_dataSource = Sitecore.Context.Database.GetItem(((Sublayout)Parent).DataSource);
J'ai besoin de valider la mise en œuvre de StandardValidator afin de fournir une rétroaction dans l'éditeur de contenu et pour empêcher l'enregistrement de l'élément si la validation échoue. Alors, comment puis-je obtenir la valeur du champ DataSource dans l'implémentation de StandardValidator?
La ligne 'i.Visualization. GetRenderings (Sitecore.Context.Device, false) 'renvoie 0 références de rendu. –