2009-06-23 6 views
1

J'ai réussi à créer et à intégrer un contrôle utilisateur réussi dans le tableau de bord d'Umbraco. La page commence par un contrôle de recherche qui renvoie une liste d'éléments modifiables.Umbraco: Backend User Control

Dans mon contrôle utilisateur, j'ai des problèmes avec la direction du lien pour la page d'édition. J'essaie de lier directement à cela. Voici ce code:

<asp:hyperlinkfield 
    datanavigateurlformatstring="/usercontrols/useradmin/item_edit.aspx?itemID={0}" 
    datanavigateurlfields="itemID" Text="edit" /> 

Umbraco est incapable de gérer le lien direct et je ne suis pas sûr de savoir comment chemin d'accès. Au contraire, il retourne cette erreur:

No umbraco document matches the url ' http://localhost:1169/usercontrols/useradmin/item_edit.aspx?itemID=f66c8f06-9e0e-4f3c-ac0d-5544e0998094 ' umbraco tried this to match it using this xpath query'/root/node/node [@urlName = "usercontrols"]/node [@urlName = "useradmin"]/node [@urlName = "item_edit"]')

Est-il possible de relier d'un contrôle utilisateur à un autre dans un contrôle de tableau de bord personnalisé?

Répondre

1

Postback Option

lieu d'essayer de créer un lien entre les pages, pourquoi ne pas faire exactement tout le travail dans le contrôle utilisateur existant en utilisant postbacks?

dire une méthode comme celui-ci dans votre contrôle utilisateur

public void Handle_Click(object sender, System.Event args) 
{ 
    //Do Something 
} 

Cela fonctionne correctement comme Umbraco ne sera pas essayer d'interpréter l'URL comme il est de rester sur la même page.

+0

Je l'ai envisagé d'aller dans cette voie aussi. Mais je préférerais savoir comment établir un lien avec d'autres contrôles, car je devrais peut-être le faire avec les fonctionnalités futures. – JGrimm

+0

Juste une note de côté, mais vous ne pouvez pas lier entre les contrôles car ils ne sont pas des pages dans leur propre droit, vous ne pouvez pas lier à myControl.ascx vous devez lier à la page contenant le contrôle i.e MyPageContainingMyControl.aspx. Cela signifie que les options Lien vers page ou iFrame sont la voie à suivre. –

+0

Tous les bons points, Tim. Je pense que je vais aller avec cette option pour le moment. – JGrimm

1

Lien vers l'option page

Pour activer un lien vers une autre page, vous devez ajouter une entrée dans le fichier web.config dire Umbraco d'ignorer le chemin (il ne cherche pas et interpréter l'URL).

Il suffit d'ajouter votre chemin vers le appSetting suivant:

<add key="umbracoReservedPaths" value="/umbraco,/install,/YOUR/PATH/HERE" /> 

Le lien est alors travailler dans le contrôle du tableau de bord, mais il sera un lien vers une page qui ne dispose pas de toute la conception du tableau de bord appliqué (de sorte que le les onglets vont disparaître, etc.). Vous pouvez appliquer le design à votre page .aspx, mais cela demande beaucoup de travail.

1

option iFrame

En raison des limites telles que décrites dans l'option Lier la page que vous pouvez charger vos pages d'administration dans un iFrame que vous mettez sur le contrôle .ascx. De cette façon, vous pouvez passer de .aspx à .aspx tout en conservant les onglets du tableau de bord et la conception environnante.

Vous aurez toujours besoin d'ajouter le dossier que vous .aspx contient des pages à l'entrée de umbracoReservedPaths dans le web.config

<add key="umbracoReservedPaths" value="/umbraco,/install,/YOUR/PATH/HERE" /> 
Questions connexes