Copied to clipboard

Flag this post as spam?

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


  • Anton 36 posts 67 karma points
    Sep 08, 2012 @ 18:06
    Anton
    0

    How to retrieve nodeId from MNTP?

    I've got the following items in my MTNP:

    I'm trying various code to try and retrieve the nodeIds without any success.  I'm going along the route of:

    foreach(var v in Model.TopPicksRepository.Items.Children)

    foreach(var v in Model.TopPicksRepository.Items.MultiNodePicker.Children)

    Can anyone point me in the right direction?

  • Hendy Racher 863 posts 3849 karma points MVP 2x admin c-trib
    Sep 08, 2012 @ 18:25
    Hendy Racher
    0

    Hi Anton,

    There's a hepler method in uQuery (GetNodesByXml) to get a collection of the selected nodes from an MNTP xml fragment:

    Node currentNode = uQuery.GetCurrentNode();
    string xml = currentNode.GetProperty<string>("TopPicksRepository");
    
    foreach(Node pickedNode in uQuery.GetNodesByXml(xml))
    {
      ...
    }
    

     

    HTH,

    Hendy

  • Ernst Utvik 123 posts 235 karma points
    Sep 08, 2012 @ 23:05
    Ernst Utvik
    0

    The following should list the items/id's in a MNTP with the alias TopPicksRepository.

    @foreach (var x in Model.TopPicksRepository){ @x.InnerText }

  • Anton 36 posts 67 karma points
    Sep 09, 2012 @ 04:46
    Anton
    0

    The code by Hendy works great - Thanks.

    However i can't help but notice the simplicity of Ernst's example which unfortunately doesn't work - In debug mode i can only see that the TopPicksRepository node and not the "items" under it.

    @foreach (var item in Model.TopPicksRepository){<li>@item.InnerText</li>}

    This doesn't work either.

    @foreach (var item in Model.TopPicksRepository.items)
        {
            <li>@item.InnerText</li>        
        }
  • Troels Larsen 75 posts 280 karma points
    Sep 09, 2012 @ 10:44
    Troels Larsen
    0

    i like to keep my C# away from my razor view so i got a clean and nice view, just because razor can hold all your logic code there is no excuse for mixing presentation and logic 

    if u dont need some filtering on u items u could just use 

    public static DynamicNodeList MultiNodePicker(this RazorLibraryCore library, DynamicXml dynamicXml)
            {
                var list = new DynamicNodeList();
                foreach (dynamic item in dynamicXml)
                {
                    list.Add(new DynamicNode(item.InnerText));
                }
                return list;

     

            }

     

     

    if u need some filtering on your nodes make a normal static extension that dont work on the RazorLibraryCore but still passes the the dynamicXml, do the filtering there and returns your filtered nodelist that way u can have a clean foreach loop where u pressentation dont have to test for empty string and what not :) 

     

     

  • 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