2

重複の可能性:
最初または最後の場合はリピーターliアイテムクラスを変更してください

私は今まで働いたことのない .net Web サイトに取り組んでいます。

私は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

Panel代わりに(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

サーバー上でそれを行うことができます:

  • データがバインドされた後のコード ビハインド

またはクライアントで:

于 2012-10-18T10:14:12.397 に答える
0

あなたはそれをすることはできません。少なくともこれは簡単ではありません。

スタイリング上の理由でこのクラスが必要な場合は、:last-child代わりに疑似クラスを使用してください。JavaScript でこれが必要な場合は、最後の子を取得する他の方法があります。

于 2012-10-18T10:14:24.597 に答える
0

class 属性値を次のように変更します。

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

GetItemClassコードビハインドでメソッドを作成し、

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

最初または最後の場合はリピーターのアイテムクラスを変更するも参照 してください

于 2012-10-18T10:20:08.587 に答える