2017-09-09 7 views
0

私はaspのリピータを使って1行に3枚のイメージを繰り返しましたが、1行につき1つのイメージしか表示されません。どうして ?なぜリピーターは1行につき3枚のイメージを繰り返すのですか?

私はあらゆる方法で試してみましたが、効果はありませんでした。リピータ内

<asp:Repeater ID="rptrImages" runat="server"> 
       <ItemTemplate> 
        <div class="row"> 
         <div class="col-md-4"> 
          <div class="thumbnail"> 
           <img src='<%# "UploadedImages/"+ Eval("Image") %>' alt="No Image" class="img-responsive img-rounded" /> 
          </div> 
         </div>     
        </div> 
       </ItemTemplate> 
      </asp:Repeater> 
+1

なぜ3行ごとに表示する必要がありますか?毎回新しい行を作成しています。 – VDWWD

答えて

0

<ItemTemplate>は、データソース内のすべてのオブジェクトに対して繰り返されますコンテンツです。あなたがする必要があるすべてはあなたのテンプレートをリファクタリングです:上記を使用して

<div class="row"> 
    <asp:Repeater ID="rptrImages" runat="server"> 
     <ItemTemplate> 
      <div class="col-md-4"> 
       <div class="thumbnail"> 
        <img src='<%# "UploadedImages/"+ Eval("Image") %>' alt="No Image" class="img-responsive img-rounded" /> 
       </div> 
      </div>     
     </ItemTemplate> 
    </asp:Repeater> 
</div> 

、彼らは意志によるブートストラップの列の性質上、<div class="col-md-4">は、データソース内の各項目ごとに繰り返されると、すべてが単一<div class="row">内に含まれます3つが水平に置かれると、同じdiv内の別の行に自動的に折り返されます。

<asp:Repeater ID="rptrImages" runat="server"> 
    <HeaderTemplate> 
     <div class="row"> 
    </HeaderTemplate> 
    <ItemTemplate> 
     <div class="col-md-4"> 
      <div class="thumbnail"> 
       <img src='<%# "UploadedImages/"+ Eval("Image") %>' alt="No Image" class="img-responsive img-rounded" /> 
      </div> 
     </div>     
    </ItemTemplate> 
    <FooterTemplate> 
     </div> 
    </FooterTemplate> 
</asp:Repeater> 

次に、あなたのコードビハインドでリピーター結合する場合:<div class="row">は内にあるので

rptrImages.DataSource = myDataSourceVar; 
rptrImages.DataBind(); 
rptrImages.Visible = (rptrImages.Items.Count > 0); 

をあなたは<div class="row">を非表示にする必要がある場合、リピータは、以下を試し、その後の任意の項目を含めるべきではありませんHeaderTemplateFooterTemplateVisibleをfalseに設定するとレンダリングされません。

関連する問題