Ich versuche nur das Repeater Trennzeichen anzuzeigen, wenn die Spalte "Datum" vom vorherigen Element vom aktuellen Element Datum abweicht.Repeater Trennelement nach vorherigem Wert ausblenden
Code unten dient nur zur Klärung meiner Zweifel.
Ich habe einen Repeater wie folgt aus:
<asp:Repeater ID="tbData" runat="server">
<HeaderTemplate>
<table class="table table-striped">
<thead>
<tr>
<th>Date</th>
<th>Description</th>
</tr>
</thead>
<tbody>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# DataBinder.Eval(Container.DataItem, "Date") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "Description") %></td>
</tr>
</ItemTemplate>
<SeparatorTemplate>
<tr id="rowSeparator" runat="server" visible="false">
<td></td>
<td></td>
</tr>
</SeparatorTemplate>
<FooterTemplate>
</tbody>
</table>
</FooterTemplate>
</asp:Repeater>
ich nur noch Separator zu zeigen, wenn früheren Zeitpunkt von der aktuellen unterscheidet.
Date Description
28/03/2016 Sample
28/03/2016 Sample
=> Here separator is showed.
29/03/2016 Sample
Ich habe so etwas wie dies versucht:
private DateTime? lastShowedDate = null;
public bool isOtherDate;
...
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Separator)
{
//Compare last and current date
isOtherDate = ((MyType)e.Item.DataItem).MyDate.Date != lastShowedDate.Value.Date;
//Save current date for next item comparison
lastShowedDate = ((MyType)e.Item.DataItem).MyDate;
//Find and set control visibility
Control separator = (Control)e.Item.FindControl("rowSeparator");
separator.Visible = isOtherDate;
}
}
Also was funktioniert nicht? Die Datumsvergleichslogik oder das Ausblenden des Trennzeichens? –
Hidding Separator. Es scheint, als wäre die Vergleichslogik in Ordnung – Marcoscdoni
Es sieht so aus, als ob Sie versuchen, Elemente mit einem Trennzeichen zu gruppieren. Vielleicht sollten Sie die Logik ändern und versuchen, Gruppierungslogik zu verwenden. – oneNiceFriend