Laden...

asp:Repeater sortieren?

Erstellt von math55 vor 14 Jahren Letzter Beitrag vor 14 Jahren 813 Views
math55 Themenstarter:in
314 Beiträge seit 2007
vor 14 Jahren
asp:Repeater sortieren?

Hallo,

ich habe eine Repeater in meiner aspx Seite, der sieht so aus:


<asp:Repeater ID="rptVersions" OnItemDataBound="rptVersions_ItemDataBound" 
                                runat="server">
....
</asp:Repeater>

In der Codebehind gebe ich dann die Datenquelle folgendermaßen an:


rptVersions.DataSource = methode(param);

Wie kann ich jetzt die Sortierung hinzufügen? Ich habe es schon so versucht, klappt aber nicht, er kommt an der Stelle nicht lang.


protected void rptVersions_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
    e.Arguments.SortExpression = "versionnumber";
}

Habe ich was vergessen?

Danke

5.941 Beiträge seit 2005
vor 14 Jahren

Hallo math55

Wieso sortierst du nicht schon die Datenquelle, das wäre wesentlich einfacher als da gross was drum rum zu bauen.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

math55 Themenstarter:in
314 Beiträge seit 2007
vor 14 Jahren

Kam auch schon auf die Idee, funzt aber ebenso nicht wirklich:


dt.DefaultView.Sort = "SubversionNumber, SubversionDate";

Ändert sich nix in der Anzeige, weder mit ASC noch mit DESC...sollte aber so funzen, richtig? Kann es daran liegen, dass er Datumsangaben der Art 30.12.2009 bzw. Nummernangaben der Art 2.34.6 nicht richtig sortieren kann?

Grüße

5.941 Beiträge seit 2005
vor 14 Jahren

Hallo math55

Was ist deine Datenquelle?
Eine DataTable?

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

math55 Themenstarter:in
314 Beiträge seit 2007
vor 14 Jahren

Ich habe jetzt was erreicht. Ich habe jetzt diesen Code und er sortiert auch:


DataTable dt = method(param);
dt.DefaultView.Sort = "VersionDate";
rptVersions.DataSource = dt;
rptVersions.DataBind();

Das funzt jetzt sogar, da das Datum aber ein string ist, prüft er nur die ersten Zahlen, heisst also der 22.08.2009 liegt vor dem 10.10.2009. Wie könnte ich das noch ändern, ohne den Spaltentyp in ein DateTime abzuändern?

Danke!!

math55 Themenstarter:in
314 Beiträge seit 2007
vor 14 Jahren

Ich habe es jetzt gelöst. Ich habe die Spalte in ein DateTime konvertiert und mit DESC sortiert. Letztes Problem: Jetzt zeigt er mir natürlich die Zeit so an: 17.09.2009 00:00:00. Wie bekomme ich die 00:00:00 noch weg?

Danke 😃

5.941 Beiträge seit 2005
vor 14 Jahren

Hallo math55

Schau dazu hier:

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011