Ne arayalım?

ARAMIZA KATILIN

BİZE ULAŞIN

Adres:

E-posta:

host/bin/bilisimlife.dll

iletisim@bilisimlife.net




 
Rserit
Full Stack Developer
       
 728  
 208

Repeater'daki ilk elemana değer eklemek (Container.ItemIndex)

Selamlar,
Repeater'da gelen datasource'daki ilk ya da son değere bir değer atamak isteyebilirsiniz. Dahası her bir elemana farklı şeyler de atamak isteyebilirsiniz. Bunu Container.ItemIndex ile çözebiliriz. Mantık şu: ItemIndex değeri 0 ise yani ilk değer ise şunu şunu döndür, değilse şunu gibi.

Bir örnekle açıklayalım.


Ön kısımdaki Repeater şöyle olsun.

<asp:Repeater runat="server" ID="RptImages">
    <ItemTemplate>
        <li class="<%# GetClass(Container.ItemIndex) %>">
            <%#  Eval("Resim") %>
        </li>
    </ItemTemplate>
</asp:Repeater>

Codebehind tarafında oluşturacağımız metod ise şöyle:

Önce Repeater'da datasource verilir:
RptImage.DataSource = data;
RptImage.DataBind();

Ardından şu metod yazılır:

protected string GetClass(int itemIndex)
{
    if (itemIndex == 0)
        return "item active";
    else if (itemIndex == this.ItemCount - 1)
        return "item";
    else
        return "item";
}

Container.ItemIndex ile sorunu çözmüş oluruz.


Alternatif olarak şunu da kullanabilirsiniz:


<asp:Repeater ID="RptImages" runat="server" ViewStateMode="Disabled">
  <ItemTemplate>
    <li<%# Container.ItemIndex == ((IList)((Repeater)Container.Parent).DataSource).Count-1 ? " class='sonuncu'" : "birinci"%>>
...
    </li>
  </ItemTemplate>
</asp:Repeater>


İyi çalışmalar,
Recep.

Developer.