Entwickler-Ecke
C# - Die Sprache - Viele ID's + zugehöriger Wert sortieren
d4rkdevil - Mo 02.02.09 12:42
Titel: Viele ID's + zugehöriger Wert sortieren
Hallo Leute,
ich habe in asp.net eine Seite gemacht.
Nun habe ich viele ID's die aus einer txt-Datei gelesen werden. Zu jeder ID wird jetzt ein Wert berechnet. Nun will ich mir eine Liste, nach diesen berechneten Wert sortiert, ausgeben lassen. Also das der kleinste Wert ganz oben ist und ich weiß, zu welcher ID dieser Wert gehört.
In einer Windowes-Anwendung habe ich das über ein "dataGrid" gemacht. Nur das gibt es ja in einen Web-Projekt nicht. Habe das dann mit einer ArrayList und nen Repeater probiert. Nur das will net klappen. So bekomm ich nur die berechneten Werte ausgegeben aber weiß nicht von welcher ID sie kommen. Es ist halt wichtig das ich zu jeden berechneten Wert genau weiß, welcher ID dieser Wert angehört.
Aber hier noch mein Ansatz (aspx.cs Datei):
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| ArrayList values = new ArrayList(); for (int i = 1; i <= 1000; i++) { ... ... values.Add(TotalDeviation); } values.Sort(); Repeater1.DataSource = values; Repeater1.DataBind(); |
Und hier aus der aspx Datei:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| <asp:Repeater id="Repeater1" runat="server">
<HeaderTemplate> <table border="1"> </HeaderTemplate>
<ItemTemplate> <tr> <td> <%# Container.DataItem %> </td> </tr> </ItemTemplate>
<FooterTemplate> </table> </FooterTemplate>
</asp:Repeater> |
Habe das auch schon mit ner DataList oder GridView versucht. Aber da fehlt mir irgedwie der Syntax wie ich das implementiere oder die Programmierkenntnisse. Ich programmiere erst seit 3 Monaten mit C# in asp.net. Daher meine Unwissenheit.
Danke schonmal für die Hilfe.
Gruß Chris
JüTho - Mo 02.02.09 13:51
Hallo,
für ASP.NET gibt es durchaus
DataGrid, nämlich im Namespace System.Web.UI.WebControls in der System.Web.Dll. Es ist aber nützlich, es nicht damit zu machen; denn Daten und Anzeige sollten getrennt verarbeitet werden.
Es bietet sich deshalb eine
DataTable an, ggf. nur mit zwei Spalten: Original-ID und berechneter Wert. Die DataTable oder eine
DataView kann beliebig sortiert werden.
Wie eine DataTable unter ASP.NET bei Deinem Problem eingebunden wird, weiß ich allerdings überhaupt nicht.
Gruß Jürgen
PS.
ArrayList gehört in die Mottenkiste und sollte wie alle untypisierten Collections aus System.Collections nicht mehr benutzt werden. Verwende stattdessen
List<T> und alle anderen typisierten Collections aus System.Collections.Generic.
PS 2. Ich vermute, dass das größere Problem darin besteht, wie eine solche "Liste" unter
ASP.NET verarbeitet werden könnte. Dieses Unterforum dürfte deshalb besser passen.
PS 3. Zu DataTable findest Du eine Einführung z.B. in
OpenBook VC# [
http://openbook.galileocomputing.de/visual_csharp/] Kap.25 ff. Du kannst Dich aber auf die wenigen Punkte beschränken, die sich direkt mit der Erzeugung der DataTable in der IDE befassen.
Kha - Mo 02.02.09 16:19
Wenn nichts weiter als eine Tabelle ausgespuckt werden soll, ist ein Repeater goldrichtig. Wenn du neben dem Wert auch den Index brauchst, musst du eben beide in der Liste speichern, entweder in einer eigenen Klasse oder in einem
KeyValuePair.
Ansonsten könntest du auch die gesamte Schleife direkt in die .aspx-Datei verschieben und die Werte dann etwa so anzeigen:
XML-Daten
1: 2:
| <td><%= i ></td> <td><%= GetTotalDeviation(i) ></td> |
d4rkdevil - Mo 02.02.09 16:34
Vielen Dank schonmal für eure Hilfe. Ich werde morgen gleich einmal versuchen ein Paar Dinge von euch umzusetzten.
Habe mich aber erst falsch ausgedrückt. Die Ausgabe ist eigentlich eher nebensächlich. Sie dient blos zu Testzwecken, ob das mit der Wertberechnungn und den Index auch gut klappt. Eigentlich soll dann blos intern mit den Werten weiter gearbeitet werden, ohne das der Nutzer was davon sieht.
Also werde ich es am besten mit einer DataTable probieren? Muss ich dann erst mal schauen wie das mit den implementieren is :)
Gruß
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!