Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Tony Kiernan 278 posts 341 karma points
    Jun 24, 2011 @ 16:56
    Tony Kiernan
    0

    Loop through some of gallery

    So, I'm looping through items in a media folder

    Media gallery = new Media(999);
    foreach (Media pic in gallery.GetDescendants())
    {
    @pic.getProperty("umbracoFile").Value.ToString() }

    Which works fine. However, I want to exclude the top image as that's not going to be in the thumbnail controls.  So, I need to do something along these lines

    foreach (Media pic in gallery.GetDescendants().All().Where(x => x.Position() != 1))

    Obviously this syntax is wrong.  Anyone help?

  • Daniel Bardi 924 posts 2556 karma points
    Jun 24, 2011 @ 17:39
    Daniel Bardi
    0

    You could use an if statement to skip the first item.

  • Tony Kiernan 278 posts 341 karma points
    Jun 26, 2011 @ 19:17
    Tony Kiernan
    0

    Yes, but that's going to give me considerabley more lines of code (once we start bringing in showing the main one larger, handling only one image etc).  I can do what I'm asking easily in xslt, it SHOULD be possible with razor

  • Dan Diplo 1505 posts 5911 karma points MVP 4x c-trib
    Jun 27, 2011 @ 12:28
    Dan Diplo
    0

    You should be able to do something like this using DynamicMedia item:

    @{
      var gallery = new umbraco.MacroEngines.DynamicMedia(999);
    }

    <ul id="gallery">
    @foreach (dynamic item in gallery.Children.Items.Skip(1))
    {
    <li>
    <img src="@item.umbracoFile" alt="@item.name" />
    </li>
    }
    </ul>

    The Skip(1) part just skips the first item in the collection. You can then just access the media item properties directly since it is being used as a dynamic type.

  • Tony Kiernan 278 posts 341 karma points
    Jun 27, 2011 @ 12:59
    Tony Kiernan
    0

    Cool!  Thank you very much.

    Now, will

    gallery.Children.Items.Single(1)

    Just give me the first/main one?

  • Dan Diplo 1505 posts 5911 karma points MVP 4x c-trib
    Jun 27, 2011 @ 15:02
    Dan Diplo
    0

    I think you could just use 

    gallery.Children.Items.First() 
  • Tony Kiernan 278 posts 341 karma points
    Jun 27, 2011 @ 15:08
    Tony Kiernan
    0

    Thank you, again

  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" link below.

Please Sign in or register to post replies