Laden...

Row und Column aus Gridview auswählen (DevExpress)

Erstellt von Buzz Tyca vor 9 Jahren Letzter Beitrag vor 9 Jahren 4.410 Views
B
Buzz Tyca Themenstarter:in
50 Beiträge seit 2015
vor 9 Jahren
Row und Column aus Gridview auswählen (DevExpress)

Hallo zusammen,

ich stehe vor folgendem Problem. Ich habe über DevExpress ein Gridview angelegt, dass mit einem View vom SQL-Server gefüllt wird. Soweit so gut.
Jetzt möchte ich in einer Methode in jedem Row den Wert einer Checkbox auslesen (True/False).

Mein Problem ist, dass ich nicht so recht rausbekomme, wie ich die einzelnen Rows ansprechen kann.

Ich habe mir das etwa so vorgestellt, wobei es sich hier zT um Pseydocode handelt:


for( int i = 0; i < rowCount; i++)
{
     if( gridView1.row[i].column[3] == True )
     {
          do.something();      
     }
}

Weiß jemand, wie ich auf die Rows bzw dann eben auch ouf die entsprechende Column zugreifen kann?

Danke euch

2.207 Beiträge seit 2011
vor 9 Jahren

Hallo Buzz Tyca,

ohne viel Ahnung mit DevExpress zu haben:

Was du mit

gridView1.row[i].column[3]

bekommst ist eine Zelle von dem GridView. Du musst noch mitteilen, dass da eine Checkbox ist (cast?). Die kannst du dann prüfen.

Gruss

Coffeebean

B
Buzz Tyca Themenstarter:in
50 Beiträge seit 2015
vor 9 Jahren

Ich bin inzwischen etwas weiter. Ich habe herrausgefunden, wie ich die den Wert ansprechen kann, oder zumindest glaube ich dass. Allerdings bekomm ich immer einen NULL-Wert zurück


if( gridView1.GetRowCellValue(i, "Sperre JN") == True )

Wobei der String "Sperre JN" die Column ansprechen soll. Zumindest habe ich das im DevEx Forum erfahren können. So ganz kann es aber noch nicht stimmen.

Ich vermute, das ich noch einen Befehl anhängen muss, um den tatsächlichen Zustand der Checkbox zu erhalten.
So etwa:


//Pseudocode
if( gridView1.GetRowCellValue(i, "Sperre JN").checkboxClicked == True )

T
314 Beiträge seit 2013
vor 9 Jahren

Von welcher Technologie sprechen wir denn hier?

Ist es dir davon ab ggf. nicht einfacher möglich indem du die Daten abrufst, in einer entsprechenden Liste aufbereitest und diese dem Grid zur Verfügung stellt. Dann brauchst Du auch nicht direkt mit dem Grid arbeitetn sondern kannst die Operationen auf der Liste durchführen.

B
Buzz Tyca Themenstarter:in
50 Beiträge seit 2015
vor 9 Jahren

Wieder einen Schritt weiter:


var jaOderNein = gridView1.GetRowCellValue(i, "SperreJN");

Ergo: die Bezeichnung der Column war falsch (Leehrzeichen).

Diese Zeile Funktioniert. Ich bekomme laut Debugger ein true oder ein false in die Variable geschrieben. ABER: Ich bekomme als datentyp "object{bool}" und wenn ich ehrlich bin, habe ich nicht die blasseste Ahnung, wie ich diesen zu einem Bool gecastet kriege, der deinem Vergleich in einer If standhält.

2.207 Beiträge seit 2011
vor 9 Jahren

Harter "(bool)" oder weicher "as" Cast und dann durch eine if-Abfrage?

Und schau bitte: [Tipp] Anfängerfehler == true / == false

Beachte t0ms3n's Vorschlag die Abfrage direkt an den Daten zu machen. So gehst du mit den Daten ans UI und von da aus wieder zurück ==> Schlechte Idee.

Gruss

Coffeebean

B
Buzz Tyca Themenstarter:in
50 Beiträge seit 2015
vor 9 Jahren

Jep So klappts 👍

Mit dem Casting gehts.

Ich danke euch

K
60 Beiträge seit 2014
vor 9 Jahren

Ich durfte mich mit dem Grid auch ein wenig auseinandersetzen. Gerne zeige ich dir meine Notizen:

Wert von einer bestimmten Zelle erhalten:

GRIDNAME.GetCellValueByListIndex(0, "SPALTENNAME");

Wert setzen geht dann mit SetCellValueByListIndex....

Alle Rows Value ändern

for (int i = 0; i < GRIDNAME.VisibleRowCount; i++){                          GRIDNAME.SetCellValue(GRIDNAME.GetRowHandleByListIndex(i),"SPALTENNAME",true);}

Ich habe noch mehr aufgeschrieben, bezüglich EntityFramework, WPF (Summenerstellung, Displayformat usw.) Ich hoffe ich konnte dir helfen