2012-10-18 41 views
2

可能重复:
change repeater li item class if first or last添加类最后一个项目

IM在一个.NET网站,我从来没有合作过的工作。

我有输出4个格下面...

<asp:Repeater ID="RT_Ranges" runat="server"> 
    <ItemTemplate> 
     <div class="item"> 
      <h4> 
       <%# Eval("Category_Name")%></h4> 
      <asp:Image ID="Image1" ImageUrl='<%# Eval("Img") %>' runat="server" Height="92" Width="79" /> 
      <p> 
       <%# Eval("des") %></p> 
      <asp:HyperLink ID="HL_More" NavigateUrl='<%# Eval("nav") %>' runat="server">View More</asp:HyperLink> 
     </div> 
    </ItemTemplate> 
</asp:Repeater> 

我要添加从上面的输出类到最后DIV,这是可能的,如果是我会怎么做呢?

+1

你可以使用任何客户方的技术,或者你被限制使用C#?如果可以的话,我会告诉你一个非常简单的使用jQuery的解决方案。 –

+1

尝试使用jQuery:'$(“div.item:last”)。addClass( “类名”)';超级简单 – mshsayem

+0

帮助文章:http://forums.asp.net/t/881301.aspx?Last+item+of+repeater –

回答

0

你不能这样做。至少这并不容易。

如果你需要这个类的样式的原因,然后使用:last-child伪类,如果你需要这个在JavaScript中,那么还有其他方法获取最后一个孩子。

3

你有你的答案here

使它像:

<asp:Repeater ID="RT_Ranges" runat="server"> 
    <ItemTemplate> 
     <div class="<%# GetItemClass(Container.ItemIndex) %>"> 
      <h4> 
       <%# Eval("Category_Name")%></h4> 
      <asp:Image ID="Image1" ImageUrl='<%# Eval("Img") %>' runat="server" Height="92" Width="79" /> 
      <p> 
       <%# Eval("des") %></p> 
      <asp:HyperLink ID="HL_More" NavigateUrl='<%# Eval("nav") %>' runat="server">View More</asp:HyperLink> 
     </div> 
    </ItemTemplate> 
</asp:Repeater> 

,并在你的代码隐藏:

protected string GetItemClass(int itemIndex) 
{ 
if (itemIndex == this.ItemCount - 1) 
     return "CSS_for_last_item"; 

} 
+0

这样一个不错的答案! –

+0

而不是'this.ItemCount',我不得不使用'RT_Ranges.Controls.Count'。 –

0

你可以使用一个Panel代替(其呈现为DIV )。然后你可以使用此代码来获得的最后一个项目,找到面板:

RepeaterItem lastRepeaterItem = RT_Ranges.Items[RT_Ranges.Items.Count - 1]; 
Panel lastPanel = (Panel)lastRepeaterItem.FindControl("PanelID"); 
lastPanel.CssClass = "yourclass"; 
0
<asp:Repeater ID="RT_Ranges" runat="server"> 
    <ItemTemplate> 
     <div <%# (Container.DataItemIndex != 0 && (Container.DataItemIndex+1) % 4 == 0) ? @"class='myClass'" : @"class='item'" %>> 
      <h4> 
       <%# Eval("Category_Name")%></h4> 
      <asp:Image ID="Image1" ImageUrl='<%# Eval("Img") %>' runat="server" Height="92" Width="79" /> 
      <p> 
       <%# Eval("des") %></p> 
      <asp:HyperLink ID="HL_More" NavigateUrl='<%# Eval("nav") %>' runat="server">View More</asp:HyperLink> 
     </div> 
    </ItemTemplate> 
</asp:Repeater> 

或者使用jQuery:

$("table.RT_Ranges div:last").attr("class", "last"); 
0

更改类属性值,如下所示,

 <div class="<%# GetItemClass(Container.ItemIndex) %>"> 

并在代码behid中创建GetItemClass方法,

protected string GetItemClass(int itemIndex) 
{ 
    if (itemIndex == this.ItemCount - 1) 
     return "last"; 
    else 
     return "other"; 
} 

另请参阅 Change repeater li item class if first or last

相关问题