Umbraco C # - отображает 2 разных столбца в цикле foreach (1-2) (1-2) - PullRequest
2 голосов
/ 27 апреля 2019

Я пытаюсь отобразить данные из Umbraco в следующем порядке 1-2 в цикле foreach (столбцы начальной загрузки), но мой код отображается в таком порядке столбцов 1-1, вместо 1-2 в цикле , Он не добавляет второй столбец ко второй строке, только один столбец.

например. Отображается 1 элемент, затем 2 элемента, затем 1 элемент с разными столбцами.

Какой лучший способ сделать 1-2 в цикле контента? Я немного потерян на этом. Любая помощь будет хорошей.

 <div class="container-fluid" style="padding-left: 117px;">

   <div class="row" style="margin-top: 5em;">

    <div class="col-lg-9 col-md-9 col-sm-9">

      <!-- BLOG START-->

   @foreach(var data in Model.Content.Children().Where(x => !x.GetPropertyValue<bool>("umbracoNaviHide"))){

        if(data.HasValue("blogNested")){

           var items = data.GetPropertyValue<IEnumerable<IPublishedContent>>("blogNested");

           int i = 0 ;

            foreach(var item in items){

             <div class="row">

             @if(i % 2 == 0) {

               <div class="col-md-4 col-sm-12">
                    <div class="card">
                        <img src=" /media/1180/dude.jpg" style="height: 15em;">
                     </div>
                 </div> 

            <div class="col-md-6 col-sm-12">
                <span class="card-text qs-blog-direcao">@(item.GetPropertyValue<string>("tipoDeDirecao"))</span><br><br>
                <span class="qs-blog-date-1page">@(item.GetPropertyValue<string>("dataDePublicacaoBlog"))</span><br>
                <span class="qs-blog-publicado-por"> @(item.GetPropertyValue<string>("publicadoPorBlog")) - OPINIÃO </span><br><br><br>
                <span class="qs-blog-titulo-1page">@(item.GetPropertyValue<string>("tituloBlog"))</span>
            </div>   

            <div class="col-md-12 col-sm-12" style="margin-top:2em;">
                <span class="qs-blog-resumo d-flex justify-content-start">@(item.GetPropertyValue<string>("resumoBlog"))</span>
                <span class="d-flex justify-content-end"><a><img src=" /media/1027/icon_inf_verde.png"></a></span>
            </div>  



           } 

              else {

                <div class="col-md-6 col-sm-12">
                        <span class="card-text qs-blog-direcao-double">@(item.GetPropertyValue<string>("tipoDeDirecao"))</span><br>
                        <img src=" /media/1182/tempo.jpg" style="height: 10em;margin-top: 2em;">
                        <div class="qs-blog-sideByside">
                        <span class="qs-blog-date-1page-double">@(item.GetPropertyValue<string>("dataDePublicacaoBlog"))</span><br>
                        <span class="qs-blog-publicado-por-double"> @(item.GetPropertyValue<string>("publicadoPorBlog")) - OPINIÃO </span>
                        </div>
                        <div class="qs-blog-titulo-1page-double">@(item.GetPropertyValue<string>("tituloBlog"))</div>
                        <div class="qs-blog-resumo-blog d-flex justify-content-start">@(item.GetPropertyValue<string>("resumoBlog"))</div>
                        <span class="d-flex justify-content-end"><a><img src=" /media/1027/icon_inf_verde.png"></a></span>
                </div>

                }


           @{i++;}

   </div>


        }


    }  
}

  <!-- BLOG START-->
</div>

1 Ответ

2 голосов
/ 27 апреля 2019

Это может быть что-то вроде этого

var items = data.GetPropertyValue<IEnumerable<IPublishedContent>>("blogNested")
    .ToList();

while (items.Any())
{
    var oneItem = items.First();
    items.Remove(oneItem);

    <div class="row">
        <div class="col-md-12">
            @oneItem.Id
        </div>
    </div>

    var twoItems = items.Take(2).ToList();

    if (twoItems.Any())
    {
        <div class="row">
            @foreach (var item in twoItems)
            {
                items.Remove(item);
                <div class="md-6">
                    @item.Id
                </div>
            }
        </div>
    }
}

Это будет отображать

<div class="row">
    <div class="col-md-12">
        <text>{{Id}}</text>
    </div>
</div>
<div class="row">
    <div class="md-6">
        <text>{{Id}}</text>
     </div>
     <div class="md-6">
          <text>{{Id}}</text>
     </div>
</div>
<div class="row">
    <div class="col-md-12">
        <text>{{Id}}</text>
    </div>
</div>
...
...