Copied to clipboard

Flag this post as spam?

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


  • yumin 51 posts 243 karma points
    Dec 25, 2013 @ 03:10
    yumin
    0

    how to merger DynamicNode

    1.I get two dynamicNodes as the same doctype

    like this

    var newsCenter1 = homePage.newsCenter.First();

    var newsCenter2 = homePage.newsCenter.Last();

    how can i merger this to one?

    like

    var allNewsCenter = newsCenter1 + newsCenter2

    2.how to get position in foreach?

    3.how to end a method?

    like this

    @helper RenderNews(string ranges) {

    if(ranges == "")
    
    { return; }
    
    else
    
    { do something }
    

    }

    I try this but will get a exception and can't exit method

    thanks a lot 谢谢

  • Marcio Goularte 389 posts 1362 karma points
    Dec 26, 2013 @ 14:55
    Marcio Goularte
    1

    Hi Yumin,

    Try this:

    var newsCenter1 = homePage.newsCenter.First();

    var newsCenter2 = homePage.newsCenter.Last();

    var nodes = Model.NodeById(newsCenter1 .Id, newsCenter2.Id);

    foreach(var node in nodes){

    //Get Position

    @node.Position();

       }

     references:

    http://umbraco.com/follow-us/blog-archive/2011/3/13/umbraco-razor-feature-walkthrough-part-5.aspx

    http://our.umbraco.org/documentation/Cheatsheets/DynamicNodeRazor.pdf

     

     

  • Charles Afford 1163 posts 1709 karma points
    Dec 26, 2013 @ 17:15
    Charles Afford
    0

    Marcio, Model.NodeById does not take 2 paramters does it?

    Yumin what are you trying to achieve?  Why are you trying to merge to Nodes?  If feels like you are doing something wrong.

     

    Charlie :)

  • Marcio Goularte 389 posts 1362 karma points
    Dec 26, 2013 @ 17:51
    Marcio Goularte
    100

    Sorry my mistake. Is NodesById method that takes as a parameter ids and not NodeById.

    Fixing:

    var newsCenter1 = homePage.newsCenter.First();

    var newsCenter2 = homePage.newsCenter.Last();

    var nodes = Model.NodesById(newsCenter1.Id, newsCenter2.Id);

    foreach(var node in nodes){

    //Get Position

    @node.Position();

       }

     

     

  • Charles Afford 1163 posts 1709 karma points
    Dec 27, 2013 @ 13:40
    Charles Afford
    0

    I still dont see the point in doing this?  And what version of umbraco are you using?

    If you want to get the children of a parent node just do a foreach around children of the parent

    foreach(Node contextNode in Node.children)

    {

    do work

    }

  • Marcio Goularte 389 posts 1362 karma points
    Dec 27, 2013 @ 14:10
    Marcio Goularte
    0

    I understood that yumin have more than one NewsCenter document type and want to display the first and last. Now it's wait and see if it is.

  • yumin 51 posts 243 karma points
    Dec 30, 2013 @ 02:44
    yumin
    0

    thanks for all reply, my site use for group has 13 branch companies,each has a newsCenter, and some high level(like ceo or cto etc.) need to read 2 or more newsCenter, so I have to merger this newsCenter to one, then I can sort or do something paging or first news has first css, if not merger to one , when I do paging or get first or last will get wrong Position(), like this:

    newsCenter1
      --news1    position=0
      --news2    posttion=1
    newsCenter2
      --news1    position=0
      --news2    posttion=1
    
    merger to one
    
    newsCenterAll
      --news1    position=0
      --news2    posttion=1
      --news3    position=2
      --news4    posttion=3
    

    so i can do anything i want, this why i want merger , i don't know if has a better way solve the problem

    hope you can understand, I did't learn english well because the teacher is not pretty ^_^

  • Fuji Kusaka 2203 posts 4220 karma points
    Dec 30, 2013 @ 10:31
    Fuji Kusaka
    0

    Hi there,

    Has this threat been solved ?

    In your loop you can do something like

    foreach(var node in nodes){
    if(node.IsFirst()){
    }
    if(node.IsLast()){
    }
    }

    May be this wil help you http://our.umbraco.org/documentation/Reference/Querying/DynamicNode/IsHelpers

     

  • yumin 51 posts 243 karma points
    Dec 31, 2013 @ 02:45
    yumin
    0

    hi fuji,

    foreach(var newsCenter in newsCenters)
    {
        foreach(var news in newsCenter.Children)
       {
            if(news.IsFirst())
            {   Response.Write("first"); }
       }
    }
    

    you will get two "first", why? because newsCenter1's news1.IsFirst() == true and newsCenter2's news1.IsFirst() == true, so why i must merger two newsCenter to one nodes

  • yumin 51 posts 243 karma points
    Dec 31, 2013 @ 02:50
    yumin
    0

    marcio's method can solve this problem

    var nodes = Model.NodesById(newsCenter1.Id, newsCenter2.Id);
    

    thanks very much

    and anybody knows how to end a method use return?

    I tried to code like this but not use

    if(aa == false)
    {
       return;
    }
    

    it will get a exception

  • Fuji Kusaka 2203 posts 4220 karma points
    Dec 31, 2013 @ 06:15
    Fuji Kusaka
    0

    Can you please show what will be your end result in html ?

  • 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