Autor Beitrag
kde2005
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45


D5 Pro,D2k5 PE
BeitragVerfasst: Mo 26.09.05 13:09 
Hallo!

Ich zeige mit meinem Datagrid eine Tabelle(T_Table1) aus einem DataSet.
Wenn ich jetzt auf die Spaltennamen im DataGrid klicke dann wird die jeweilige Spalte sortiert. Wie kann ich nun abfragen welche Reihe(Row) in dem Datagrid gleich der Reihe in dem Dataset?
wenn ich dataGrid1.CurrentRowIndex,nach dem Sortieren) abfrage ist es das falsche Ergebnis, da es einfach von Anfang gezählt wird.

Ich habe 1 Tabelle(unsortiert):
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
ID_Spalte | Namen_Spalte | ....
---------------------------------
4         | Name5        |
---------------------------------
5         | Name2        |
---------------------------------
6         | Name3        |
--------------------------------


jetzt sortiere ich diese:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
ID_Spalte | Namen_Spalte | ....
---------------------------------
5         | Name2        |
---------------------------------
6         | Name3        |
---------------------------------
4         | Name5        |
--------------------------------


Wenn ich jetzt auf das dataGrid1 klicke(auf die Spalte: Namen_Spalte), dann will ich die ID bekommen. Wie geht das? Das Ziel ist,dass ich anschließen mit der ID im DataSet nach weiteren Werten dieser Zeile suche kann.

p.s. Weiß jemand ob es eine Eigenschaft bei dataGrid gibt, mit der man 'RowSelect=true' auswählen kann?

Gruß Konstantin

Moderiert von user profile iconTino: Code-Tags hinzugefügt.
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: Di 27.09.05 21:58 
user profile iconkde2005 hat folgendes geschrieben:
Wenn ich jetzt auf das dataGrid1 klicke(auf die Spalte: Namen_Spalte), dann will ich die ID bekommen. Wie geht das?
Das Ziel ist,dass ich anschließen mit der ID im DataSet nach weiteren Werten dieser Zeile suche kann.


Das Form hat die Eigenschaft BindingContext. Diese hat einen Indexer, der dir den BindingManager zu einer DataSource geben kann[1].
Mit einer Referenz auf einen Bindingman hast du alles, was du brauchst. ;)
ausblenden C#-Quelltext
1:
2:
int position = BindingContext[someListSource].Position;
MyClass current = someListSource[position];


Generell kann ich nur empfehlen, langsam aber sicher sicher die Finger von .Net 1.1 zu lassen.
In 6 Wochen ist 2.0 final. Hast du bis dahin deine App fertig? Wenn nicht: Willst du dir deine Arbeit unnötig schwer machen? ;)

Mit SWF 2.0 kommt die BindingSources als Komponente. Die kapselt die Datenherkunft (Collection, single Instance, DataSet, Array...) und gibt dir den BindingManager gleich dazu.[2]

Zitat:
p.s. Weiß jemand ob es eine Eigenschaft bei dataGrid gibt, mit der man 'RowSelect=true' auswählen kann?
Wie ich bereits schrieb, 2.0 is the way to go. SWF 2.0 bringt auch die DataGridView, die das eklige DataGrid ablöst. ;)
Natürlich hat die DataGridView die Möglichkeit SelectionMode auf DataGridViewSelectionMode.FullRowSelect zu setzen...

[1]Wobei du auch noch genauere Infos angeben kannst, da die DataSource für verschiedene Controls in einem anderen Context arbeiten kann.
Für weitere Infos dazu: siehe SDK Doku
[2]Außerdem hast du so design time support um deine Klassen als Datenquellen nutzen zu können
kde2005 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45


D5 Pro,D2k5 PE
BeitragVerfasst: Mi 28.09.05 10:40 
danke!
Ich programmiere .net 1.1 in delphi 2005 personal edition und soweit ich weiß kann man nicht in delphi 2005 personal edition .net 2.0 programmieren. sonst hätte ich das schon gemacht.

Gruß Konstantin
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: Mi 28.09.05 10:58 
user profile iconkde2005 hat folgendes geschrieben:
danke!
Ich programmiere .net 1.1 in delphi 2005 personal edition und soweit ich weiß kann man nicht in delphi 2005 personal edition .net 2.0 programmieren. sonst hätte ich das schon gemacht.

Hallo Konstantin,
Es gibt bereits eine nette Preview auf #develop 2 (Corsavy Alpha). Vielleicht ist der user profile iconSimmatze so nett und lädt hier die nötigen Dateien hoch, damit auch diese Preview sein cooles Help AddIn inklusive dynamic Help hat.
Außerdem hättest du mit den Express Editionen des neuen Visual Studios eine prima Alternative zur Personal. Du kannst sie hier noch bekommen. In etwa 6 Wochen wird die Final erscheinen. (Preis weiß ich nicht, wird aber anscheinend 2-stellig sein ;) )
kde2005 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45


D5 Pro,D2k5 PE
BeitragVerfasst: Mi 28.09.05 11:08 
Hallo Robert_G!

Mit Delphi 2005 Personal Edition kann ich meine selbst geschriebene Programme auch kommerziell betreiben.(siehe Lizenz)

Und ein großer Fan von Visual Studio bin ich auch nicht.

Es gibt z.B. für Delphi 2005 GExperts 9. Für Visual Studio musst du alles bezahlen und zwar nicht wenig.

Und #develope. Naja, die müssten erst mal fertig werden. Ist bei mir oft abgestürzt. Naja die Erfahrung prägt einen. :wink:
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 28.09.05 11:28 
user profile iconRobert_G hat folgendes geschrieben:
[Es gibt bereits eine nette Preview auf #develop 2 (Corsavy Alpha).
Ist IMHO momentan noch unbenutzbar. Habe gestern ein wenig damit herumgespielt und die Bugs sind einfach noch zu zahlreich bzw. an Stellen, wo sie wirklich nerven.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".