Autor Beitrag
d4rkdevil
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mo 02.02.09 12:42 
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):
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
ArrayList values = new ArrayList();
for (int i = 1; i <= 1000; i++) // i gibt hier auch die ID an
{
    ...
    // Hier kommen die Berechnungen und werden in TotalDevation gespeichert
    ...
    values.Add(TotalDeviation);
}
values.Sort();
Repeater1.DataSource = values;
Repeater1.DataBind();


Und hier aus der aspx Datei:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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# 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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:
ausblenden XML-Daten
1:
2:
<td><%= i ></td>
<td><%= GetTotalDeviation(i) ></td<!-- Methode in der Codebehind-.aspx.cs -->

_________________
>λ=
d4rkdevil Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: 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ß