Ich habe eine DataTable mit 10 Zeilen sagen einer der Spalten von 1 bis 10 zufällig nummeriert. Ich möchte sie sortieren. normalerweise mache ich das:Wählen Sie die obersten N Zeilen NACH dem Sortieren aus der Datenansicht in C#
DataView Dv = new DataView(dtPost, "", "views desc", DataViewRowState.Unchanged);
repeater.DataSource = Dv;
repeater.DataBind();
Jetzt möchte ich nur die oberen 5 Zeilen in diesem Dataview binden. Wenn ich das versuchen:
DvPopBlogs.Table.Rows.Cast<System.Data.DataRow>().Take(5);
OR
DvPopBlogs.Table.AsEnumerable().Take(5); //this usually works if sorting wasnt necessary
Es funktioniert, aber das vergisst vollständig über dataview der Sortier- und wählt nur 5 Zeilen von oben.
Ich habe es auch mit allen DataViewRowStates versucht. Wie wählt man die oberen 5 Zeilen nach dem Sortieren aus?
Ich habe scheinbar keine Ideen mehr! bitte helfen!
ja, ich fand dies heraus, als ich zu debuggen versuchte, Dataview schien Reihenfolge sortiert zu haben, aber sobald ich hinzugefügt Tabelle wurde die Sortierreihenfolge verloren, jetzt verstehe ich, Tabelle sind die ursprünglichen Daten. Vielen Dank. Aber, DvPopBlogs ist ein DataView und es hat weder .Take() oder .DataViewRows() Methoden! – iamserious
Versuchen Sie entweder dvPopBlogs.AsEnumerable(). Take, oder im schlimmsten Fall dvPopBlogs.ToTable() Letzteres erstellt eine neue DataTable aus dem Inhalt der Ansicht. –
Hallo, tut mir leid, wenn ich die .ToTable() Methode Repeater beschwert (auf Bindung), dass bestimmte Spalte nicht existiert. Das Debuggen zeigt, dass es existiert, vielleicht mache ich etwas falsch und ich bin mir sicher, dass du es ohne den vollständigen Code nicht herausfinden kannst. Was schlägst du vor, dass ich jetzt mache? Danke und Entschuldigung, dass du zu viele Fragen gestellt hast! – iamserious