2

可能重复:
如果第一个或最后一个更改中继器 li 项目类

我在一个我以前从未使用过的.net 网站上工作。

我有以下输出4个div ...

<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 中添加一个类,这可能吗?如果可以,我该怎么做?

4

6 回答 6

3

你在这里有你的答案

让它像:

<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";

}
于 2012-10-18T10:16:18.487 回答
0

您可以在服务器上执行此操作:

  • 在数据绑定后的代码中

或在客户端:

于 2012-10-18T10:14:12.397 回答
0

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

如果您出于样式原因需要此类,请改用:last-child伪类,如果您在 javascript 中需要此类,则还有其他获取最后一个孩子的方法。

于 2012-10-18T10:14:24.597 回答
0

您可以使用 aPanel代替(呈现为 div)。然后您可以使用此代码获取最后一项并找到面板:

RepeaterItem lastRepeaterItem = RT_Ranges.Items[RT_Ranges.Items.Count - 1];
Panel lastPanel = (Panel)lastRepeaterItem.FindControl("PanelID");
lastPanel.CssClass = "yourclass";
于 2012-10-18T10:16:47.963 回答
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");
于 2012-10-18T10:17:48.430 回答
0

Change class attribute value as follows,

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

And create GetItemClass method in code behid,

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

Also refer Change repeater li item class if first or last

于 2012-10-18T10:20:08.587 回答