Bilmek istediğin her şeye ulaş

Repeater içerisinde div id"boxPortfolio1" class"grid_5" olarak kullandığım classı her 3. itemde div id"boxPortfolio1" class"grid_5 right" olarak kullanmam gerekiyor tasarım gereği. Tavsiyeniz ?

Tam olarak durumu anlamadım ama; anladığım kadarı ile yanıtlamaya çalışayım:

  1. Repeater yerine DataList kullanırsan AlternatingItemTemplate ekleyerek; her 2 item'da bir (yani 1, 3, 5, 7,....13,15... gibi) ayrı bir template verebilirsin.

  2. Tüm item'lar içinde sadece 3 ve katları itemlar için böyle bir ihtiyaç duyuyor isen; Repeater'ın ItemDataBound eventini kullanmalısın. Orada event argumanlarında hangi item'ın içinde oldugunu bulup, e.Item.FindControl('boxPotrfolio1') ile istediğin control'e erişebilir, özelliklerini değiştirebilirsin.
Not: div yerine Panel kullanmalı yada div'e runat='server' eklemelisin. Yoksa kod tarafında erişemezsin.

Kolay gelsin:)

Güncelleme:
Repeater kullandığınız zaman Template içinde Container.ItemIndex özelliğinden faydalanabilirsiniz, şöyle bir yapı ile çözümleyebilirsiniz:

            <asp:Repeater runat="server" ID="testRepeater">
                <ItemTemplate>
                    <div class='<%# (Container.ItemIndex + 1) % 3 == 0 ? "grid_5 right" : "grid_5" %>'>
                        <%# Container.ItemIndex + 1 %> numaralı item.
                    </div>
                </ItemTemplate>
            </asp:Repeater>

Benzer durum DataList için de bulunuyordur.
  • Paylaş
Bu durumu iç içe repeater kullanarak çözebilirsiniz (iç içe for düngüsü gibi düşünülmeli). Fakat şunu da unutmayın: bir web sayfasında kural gereği ancak tek bir id kullanılabilir.
  • Paylaş
Sonraki Soru
HESAP OLUŞTUR

İstatistikler

1273 Görüntülenme4 Takipçi2 Yanıt

Konu Başlıkları