Copied to clipboard

Flag this post as spam?

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


  • Simone Chiaretta 135 posts 542 karma points c-trib
    Feb 17, 2016 @ 11:07
    Simone Chiaretta
    0

    How to see if a property of type Grid has content?

    If I do call the HasValue method on a property whose type is a grid I always get true even if there is no actual content, but just the JSON with the definition of the empty grid.

    Is there a way to detect whether a grid has content?

    Simone

  • Elin 45 posts 166 karma points
    Jul 14, 2017 @ 14:37
    Elin
    0

    Hi Simone,

    Have you found any solution to that issue.

    I'm currently having the same issue, and it's driving me nuts.

  • Nicholas Westby 2054 posts 7104 karma points c-trib
    Jul 14, 2017 @ 15:26
    Nicholas Westby
    0

    You could always fetch the value and compare it against the known structure of an empty grid.

  • Anders Bjerner 487 posts 2996 karma points MVP 8x admin c-trib
    Jul 15, 2017 @ 11:42
    Anders Bjerner
    2

    Hi Simone,

    Assuming the alias of your grid property is content, your code could look like this:

    @using Newtonsoft.Json.Linq
    @inherits UmbracoTemplatePage
    @{
    
        Layout = "Master.cshtml";
    
        if (CurrentPage.content is JObject) {
    
            JObject grid = CurrentPage.content;
    
            if (grid.SelectTokens("sections[*].rows[*].areas[*].controls").Any()) {
                @CurrentPage.GetGridHtml("content", "fanoe")
            }
    
        }
    
    }
    

    Umbraco will expose the grid property value as a instance of JObject, which again has a SelectTokens method for matching one or more JSON tokens/objects - in this case to match the controls.

  • 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