2017-09-14 115 views
0

我有一个自定义部分,自定义树。Umbraco 7 - 自定义菜单项和树,导航如何工作?

我有一点麻烦了解如何设置正确的行为时:

您点击一个节点在你的树进行编辑。 您点击节点上的菜单项,如“创建” 在我的解决方案中,我使用相同的视图来编辑和创建记录。

在我的树中,这是如何生成一个节点。

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); 

本步骤是我想要的路线:(我的HTML文件的名称是editcampaign.html),它也传递“活动-6”

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

当用户点击创建节点上的“菜单项” - 我想送他们到相同的URL,但只是用例如指出错误编号:

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

,我不希望它弹出出侧的

这是我到目前为止已经试过:

//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"); 

任何人都可以点我的菜单的树木周围,一般后台的充分资料和导航?

回答

0

我相信有一个选项可以在“创建”菜单项上设置视图路径,这会使其正常打开?另外,让你的路径像/ view/path/here/id更好吗?然后,当您创建一个新项目时,只需发送0作为ID。 Github上的Umbrangular是一个有很多自定义部分和视图示例的项目。

编辑:下面是一个例子

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; 
}