2016-04-15 4 views
0

これを実現するには本当に近いです。私は各行に3つの画像を取得しようとしています。最初の行には1つのイメージしかありませんが、残りのイメージには3つのイメージがあります。なぜ最初の行に1つのイメージしかないのか分かりません。ここに私のコードだ:Foreachループを使用したブートストラップグリッドの生成

 <div class="row"> 
     @{ var counter = 0; } 

     @foreach (var x in portifolioImages) 
     { 
      <div class="col-sm-4"> 
       <a href="#"><img src="@x.UmbracoFile" alt="@x.imageTitle" style="margin:0 auto;" /> 
        <p class="folioTitle">@x.imageClient <br /><span style="color:#00bfff; font-weight: bold; text-transform: uppercase; font-size:15px;">Learn More</span></p> 
       </a> 
      </div> 
      if (counter % 3 == 0) 
      { 
       @:</div><div class="row"> 
      counter = 0; 
      } 
      counter++; 
     } 
    </div> 
+0

のカウンタ(カウンタ%3 == 0) { @:

counter = 0; } counter++; and then check – rashfmnb

+0

close but the first row had 2 images, then the rest had 3 –

+0

if you want 3 images a row, why counter, boostrap grid will do it for you, 'col-*-4' means '33.3% width' means each row divides equally into 3 so simple '

foreach {
images
}場合は、この部分を削除endforeach
'私はまだなるだろう、それはすべて一つの大きな行クラスであるにもかかわらずだから、仕事 – Shehary

答えて

1

あなたのカウンタはカウンタが0であるので、あなたの最初の行は1つだけの要素を持っているとしているときif (counter % 3 == 0)文が真となる0から始まります。 0の代わりに1でカウンタを起動するとうまくいくはずです。

また、最初の行の後で正常に動作する理由は、カウンタを0にリセットしてからすぐに1に増やすためです。したがって、最初の行は0のカウンタで始まりますが、 1.

+1

'counter 'を0にリセットする必要はありません。 – juharr

+0

これを試して、最初の行には2つのイメージがあり、2番目のイメージには1つのイメージしかありませんでした。残りは3枚の画像がありました。 –

+0

@ChristopherNorthcuttあなたが変更した行は '@ {var counter = 0; } 'to {@ {var counter = 1; } '? – Mogzol

関連する問題