Copied to clipboard

Flag this post as spam?

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


  • Luuk Krijnen 12 posts 66 karma points
    Aug 27, 2012 @ 21:48
    Luuk Krijnen
    0

    page not refreshed in time?

    Hi all,

    I've created a macro the shows a div for each childpage as part of a guestbook. When creating a new childnode programmatically using a usercontrol (node.publish and UpdateDocumentCache) the subpage is create but the macro (used in the same page) doesn't show the content. When refreshing the page using a browser refresh the content is shown as should. 

    What could I be forgotten. I think it's a minor error but I have no clue where to seach. Normally a server-sided node creation is a post-back so the page is refreshed ?

    Thanks for your advice.

    Luuk Krijnen

  • Jan Skovgaard 11280 posts 23678 karma points MVP 11x admin c-trib
    Aug 27, 2012 @ 22:13
    Jan Skovgaard
    0

    Hi Luuk

    You might need to set a script timeout to something like 200 ms.

    See the part called "Refresh node xml" here: http://our.umbraco.org/wiki/reference/api-cheatsheet/publishing-and-republishing - in this example it's set to 1 secound, but I think 200 ms should be enough.

    Hope this helps.

    /Jan

  • Luuk Krijnen 12 posts 66 karma points
    Aug 28, 2012 @ 08:53
    Luuk Krijnen
    0

    Doesn't seem te work:

    the macro showing the pages is like:

    @inherits umbraco.MacroEngines.DynamicNodeContext
    @{
      int pageSize; // How many items per page
      int page; // The page we are viewing

        /* Set up parameters */
       
        if (!int.TryParse(Parameter.PageSize, out pageSize))
        {
            pageSize = 6;
        }

        if (!int.TryParse(Request.QueryString["page"], out page))
        {
            page = 1;
        }

        /* This is your basic query to select the nodes you want */
        dynamic childnodes = Model.Children.OrderBy("CreateDate desc");
        int totalNodes = Model.Children.Count();
        int totalPages = (int)Math.Ceiling((double)totalNodes / (double)pageSize);
       
        /* Bounds checking */
       
        if (page > totalPages)
        {
            page = totalPages; 
        }
        else if (page < 1)
        {
            page = 1;
        }
      foreach (umbraco.MacroEngines.DynamicNode subpage in childnodes.Skip((page - 1) * pageSize).Take(pageSize))
            {
             <h3 class="nobottom inline">@subpage.Name</h3>
             <span>@subpage.CreateDate.ToString("dd.MM.yy")</span>
             <p>@Html.Raw(umbraco.library.ReplaceLineBreaks(subpage.GetPropertyValue("bodyText")))</p>
            }
      if(Parameter.DisablePaging=="0")
    {
        <ul class="paging">
        @for (int p = 1; p < totalPages + 1; p++)
        {
            string selected = (p == page) ? "selected" : String.Empty;
            <li class="@selected"><a href="?page=@p" title="Go to page @p of results">@p</a></li>
        }
        </ul>
     }
     
    }

     

     

    the post-item click codebehind is like:

     

                    DocumentType CommentItem = DocumentType.GetByAlias("CommentItem");

                    Document newComment = Document.MakeNew(OnderwerpTextbox.Text, CommentItem, User.GetCurrent(), Node.GetCurrent().Id);

                    newComment.getProperty("bodyText").Value = bodyTextTextBox.Text;
                    newComment.getProperty("email").Value = EmailTextBox.Text;

                    Server.ScriptTimeout = 100000;
                    newComment.Publish(User.GetCurrent());
                    umbraco.library.UpdateDocumentCache(newComment.Id

     

     

    can someone give me another hint please?

    Luuk

Please Sign in or register to post replies

Write your reply to:

Draft