2017-09-14 1 views
0

J'ai une section personnalisée, avec un arbre personnalisé.Umbraco 7 - Éléments de menu et arbres personnalisés, Comment fonctionne la navigation?

Je vais avoir un peu de difficulté à comprendre comment vous définissez le comportement correct lorsque:

Vous cliquez sur un nœud dans l'arborescence pour le modifier. Vous cliquez sur un élément de menu sur un nœud tel que "Créer" Dans ma solution, j'utilise la même vue pour modifier et créer un enregistrement.

Dans mon arbre, c'est ainsi qu'un noeud est généré.

var routeToView = "rewards/rewardsTree/editcampaign/campaign-" + campaign.Id.ToString(); 

var campaignNode = CreateTreeNode("campaign-" + campaign.Id.ToString(), id.Split('-')[1], queryStrings, campaign.CampaignName, "icon-folder color-yellow", true, routeToView); 

Ce produit la route que je veux: (le nom de mon fichier html est editcampaign.html) et il est également passage « campagne-6 »

/umbraco#/rewards/rewardsTree/editcampaign/campaign-6 

Lorsqu'un utilisateur clique sur le créer « Elément du menu » sur le nœud - Je veux les envoyer à la même URL, mais juste avec un identifiant diffrent par exemple:

umbraco#/rewards/rewardsTree/editcampaign/brand-1 

et je ne veux pas faire apparaître sur le côté

C'est ce que j'ai essayé jusqu'à présent:

//This finds the view, but it comes up in a dialog also how do I pass the Id (brand-1) 
    MenuItem mi = new MenuItem("editcampaign", "Create Campaign"); 
        menuItemCollection.Items.Add(mi); 

//Also Tried this finds puts a whole another umbraco UI inside a dialog 

mi.LaunchDialogView("#rewards/rewardsTree/editcampaign/brand-1", "TITLE GOES HERE"); 

me point Quelqu'un peut-il, dans toute la documentation pour les arbres de menu et de navigation autour du back-office en général?

Répondre

0

Je crois qu'il existe une option pour définir le chemin de vue sur l'élément de menu "Créer", ce qui le rend normalement ouvert? Aussi, cela n'aurait-il pas plus de sens d'avoir votre chemin comme/view/path/here/id? Ensuite, lorsque vous créez un nouvel élément, envoyez simplement 0 comme identifiant. Umbrangular sur Github est un projet avec de bons exemples de sections et de vues personnalisées.

EDIT: Voici un exemple

protected override MenuItemCollection GetMenuForNode(string id, FormDataCollection queryStrings) 
{ 
    var menu = new MenuItemCollection(); 

    MenuItem createCategory = new MenuItem("createcategory", "Create Category"); 

    createCategory.AdditionalData.Add("ParentCategoryId", id); 

    createCategory.NavigateToRoute("/path/to/view/category/0"); 

    createCategory.Icon = "add"; 

    menu.Items.Add(createCategory); 

    return menu; 
}