Hi - I'm new to this forum. Glad to be apart of the community!
My question is related to Umbraco 4 development, I don't know if this is the right forum node to post in?
We want to house a menu system of a parents decendant in our children pages - if that makes sense?
Current structure of the section I'm working in:
- Page One (Main Page) - List of menu items (folder) - - Menu item 1 (element option) - Menu item 2 (element option) - Menu item 3 (element option) - Sub Page 1 (page) - Sub Page 2 (page)
At the moment we're able to list the element items from our 'List of Menu Items' folder within 'Page One' of the site. However, we want to list the same menu of items from the 'List of menu items' folder from within the sub pages under 'Page One' - I'm just unsure of how to do this?
The current method we're using to call up the items within 'List of menu items' from 'Page One' is:
@foreach(var type in Model.Content.Descendants("List of menu items"))
This works fine, but of course if we house this same function within the children pages, it's looking for decendants of the children page.
If I use Model.Content.Ancestors - this also doesn't seem to work?
Thanks for your help with this - could you help me clarify one thing.
My @foreach now looks like this: @foreach(var page in Model.Content.AncestorOrSelf("ProjectType").Children) This isn't throwing up any errors, however my next error set is the call within the @foreach function.
In my origional function: @foreach(var type in Model.Content.Descendants("ProjectType")) I'm able to pick up a content type and it renders correctly:
However, when I run the new @foreach function on my children pages, I'm getting an error:
CS0103: The name 'type' does not exist in the current context
Can I assume my new @foreach function on my children page is picking up the "ProjectType" folder now, is it? If so, and I'm not getting an error, why isn't it picking up my @type string?
Nested Menu
Hi - I'm new to this forum. Glad to be apart of the community!
My question is related to Umbraco 4 development, I don't know if this is the right forum node to post in?
We want to house a menu system of a parents decendant in our children pages - if that makes sense?
Current structure of the section I'm working in:
- Page One (Main Page)
- List of menu items (folder) -
- Menu item 1 (element option)
- Menu item 2 (element option)
- Menu item 3 (element option)
- Sub Page 1 (page)
- Sub Page 2 (page)
At the moment we're able to list the element items from our 'List of Menu Items' folder within 'Page One' of the site. However, we want to list the same menu of items from the 'List of menu items' folder from within the sub pages under 'Page One' - I'm just unsure of how to do this?
The current method we're using to call up the items within 'List of menu items' from 'Page One' is:
@foreach(var type in Model.Content.Descendants("List of menu items"))
This works fine, but of course if we house this same function within the children pages, it's looking for decendants of the children page.
If I use Model.Content.Ancestors - this also doesn't seem to work?
I appreciate your help.
Kind Regards
Marc
Hi Marc,
Welcome to the best community. As I understand you want to create dynamic menu.
@foreach(var type in Model.Content.Descendants("List of menu items"))
This is hard coded menu, you have to the 'List of menu items' siblings via code.
Try to use: Model.Content.AncestorsOrSelf(), and than Descendants.
THis isn't perfect solution for performance.
Thanks
Hi Alex,
Thanks for your help with this - could you help me clarify one thing.
My @foreach now looks like this: @foreach(var page in Model.Content.AncestorOrSelf("ProjectType").Children)
This isn't throwing up any errors, however my next error set is the call within the @foreach function.
In my origional function: @foreach(var type in Model.Content.Descendants("ProjectType")) I'm able to pick up a content type and it renders correctly:
<[email protected](typeString == type.Id.ToString() ? " class=\"active\"": "")><a href="[email protected]" data-filter-value=".t@(type.Id)">@type.Name</a></li>
However, when I run the new @foreach function on my children pages, I'm getting an error:
CS0103: The name 'type' does not exist in the current context
Can I assume my new @foreach function on my children page is picking up the "ProjectType" folder now, is it? If so, and I'm not getting an error, why isn't it picking up my @type string?
Regards
Marc, are you using var type in the children view ? Can you show all your code ?
Thanks
is working on a reply...