I can't figure out where to put in "InGroupsOf" in the code below. I have tried several approaches with no luck. Is the problem that I use DynamicNode? I need the code to generate a group of 3 between the "<div class="row-fluid">" and then make another group of 3 with a new "<div class="row-fluid">".
<div class="team-members"> <div class="row-fluid"> @{ var rootNode = new umbraco.MacroEngines.DynamicNode(-1);
var dataNode = rootNode.Children.Items.SingleOrDefault(x => x.NodeTypeAlias == "Data"); var dataNodeChildren = dataNode.Children as umbraco.MacroEngines.DynamicNodeList;
var employeeBase = dataNodeChildren.Items.SingleOrDefault(x => x.NodeTypeAlias == "EmployeeBase"); var employeeBaseChildren = employeeBase.Children as umbraco.MacroEngines.DynamicNodeList;
//foreach (dynamic member in employeeBaseChildren) foreach (dynamic member in employeeBase.Children) { if (member.NodeTypeAlias == "Employee") { dynamic media = Model.MediaById(member.imageDamp); <div class="span4"> <img src="@media.umbracoFile" alt="@media.nodeName"/> <article class="member-content"> <h3>@member.employeeName</h3> <span>@member.employeeType</span> @if (member.HasValue("employeeAddress")) { <p>@member.employeeAddress</p> } @if (member.HasValue("employeePhone")) { <p>Telefon: @member.employeePhone</p> } @if (member.HasValue("employeeMail")) { <p>@member.employeeMail</p> } </article> </div> } } } </div> </div>
I have managed to get it working in a earlier project see below:
@foreach (var group in Model.Children.InGroupsOf(3)) { <div class="row"> @foreach (var page in group) { <div class="span3"> <div class="service-overview"> <h5><span class="link-white"><a href="@page.Url">@page.headerMain</a></span></h5> <p>@(Library.Truncate(Library.StripHtml(page.mainText), 60, true))</p> <img src="@page.image" alt="" /> <div class="service-overview-overlay">+</div> </div><!-- end .service-overview --> </div><!-- end .span3 --> } </div><!-- end .row --> <br /> }
I am still struggeling with this problem and I get this error in Visual Studio after i have put in the code ".InGroupsOf(3))" see code below: "The type arguments for method 'umbraco.MacroEngines.DynamicNodeList.InGroupsOf<T>(int)' cannot be inferred from the usage. Try specifying the type arguments explicitly."
<div class="team-members"> @{ var rootNode = new umbraco.MacroEngines.DynamicNode(-1);
var dataNode = rootNode.Children.Items.SingleOrDefault(x => x.NodeTypeAlias == "Data"); var dataNodeChildren = dataNode.Children as umbraco.MacroEngines.DynamicNodeList;
var employeeBase = dataNodeChildren.Items.SingleOrDefault(x => x.NodeTypeAlias == "EmployeeBase"); var employeeBaseChildren = employeeBase.Children as umbraco.MacroEngines.DynamicNodeList;
Perhaps you need to use dynamic instead of var at some places. Try something like this:
dynamic employeeBaseChildren = employeeBase.Children as umbraco.MacroEngines.DynamicNodeList;
foreach (dynamic member in employeeBaseChildren.InGroupsOf(3))
How to use InGroupsOf
Hi everybody
I can't figure out where to put in "InGroupsOf" in the code below. I have tried several approaches with no luck. Is the problem that I use DynamicNode? I need the code to generate a group of 3 between the "<div class="row-fluid">" and then make another group of 3 with a new "<div class="row-fluid">".
I have managed to get it working in a earlier project see below:
Thanks in advance!
//René
Hello
I am still struggeling with this problem and I get this error in Visual Studio after i have put in the code ".InGroupsOf(3))" see code below: "The type arguments for method 'umbraco.MacroEngines.DynamicNodeList.InGroupsOf<T>(int)' cannot be inferred from the usage. Try specifying the type arguments explicitly."
@inherits umbraco.MacroEngines.DynamicNodeContext
@using DigibizAdvancedMediaPicker;
<div class="team-members">
@{
var rootNode = new umbraco.MacroEngines.DynamicNode(-1);
var dataNode = rootNode.Children.Items.SingleOrDefault(x => x.NodeTypeAlias == "Data");
var dataNodeChildren = dataNode.Children as umbraco.MacroEngines.DynamicNodeList;
var employeeBase = dataNodeChildren.Items.SingleOrDefault(x => x.NodeTypeAlias == "EmployeeBase");
var employeeBaseChildren = employeeBase.Children as umbraco.MacroEngines.DynamicNodeList;
foreach (dynamic member in employeeBaseChildren.InGroupsOf(3))
{
if (member.NodeTypeAlias == "Employee")
{
dynamic media = Model.MediaById(member.imageDamp);
<div class="row-fluid">
<div class="span4">
<img src="@media.umbracoFile" alt="@media.nodeName"/>
<article class="member-content">
<h3>@member.employeeName</h3>
<span>@member.employeeType</span>
@if (member.HasValue("employeeAddress"))
{
<p>@member.employeeAddress</p>
}
@if (member.HasValue("employeePhone"))
{
<p>Telefon: @member.employeePhone</p>
}
@if (member.HasValue("employeeMail"))
{
<p>@member.employeeMail</p>
}
</article>
</div>
</div>
}
}
}
</div>
Does anyone know what the problem is?
Thanks in advance!
//René
Perhaps you need to use dynamic instead of var at some places. Try something like this:
Jeroen
InGroupsOf, I like that extension, never used it before, I think you are missing a foreach I tried this and it worked:
It does not explain your "type could not get inferred error" though.
You can explicitly add the type like so:
if you like to try, but I think it should be able to figure it out without it.
is working on a reply...