Datagridview - jak pobrać id pola?

0

Witam.

Nadal walczę z datagridem i wyskoczyło mi kolejne pytanko. Mianowicie ładuje do Grida dane i teraz kiedy mam je już załadowane i zaznaczam jedno z pól, to mogę pobrać jego ID:

dataGridView1.CurrentRow.Index;

na tej zasadzie postanowiłem usuwać wiersze z Tabeli w gridzie:

dsEmployees.Tables["employee"].Rows.RemoveAt(jakiesID);

No i wszystko działa, ale pod warunkiem, że nie przesortuję sobie grida. Bo wtedy kolejność mi się zmienia i nie pobiera mi już właściwie informacji. Przykładowo jeśli przed sorotowanie mam tak dane:

1
2
3
4

a po posortowaniu wg. czegoś mam

2
3
1
4

i zaznaczę teraz "2" i nacisnę usuń to usunie mi nie "2" a "1" :(

Będę wdzięczny za pomoc.

0

problem w tym, ze uzywasz CurrentIndex - a to jest pozycja na ekranie!

jedyne wyscie to albo ladowac ekstra kolumne z PrimaryKey wiersza i zrobic ja Visible.false i identyfikowac wiersze po tym, albo tez uzyc pola Tag:

for(int i=0; i< Rows.Count; ++i)
Rows[i].Tag = i;

i teraz neizaleznie od kolejnosci, ((int)CurrentRow.Tag) zwroci Ci indeks z kolekcji.. ale Tagi trzeba odswiezac po kazdym dodaniu lub usunieciu wiersza!

poza tym.. jestes pewien ze w datagridview.Rows nie ma aby metody Remove pobierajacej obiekt Row..? czegos ala:

datagridview.Rows.Remove(datagridview.CurrentRow) ?

0

poza tym.. jestes pewien ze w datagridview.Rows nie ma aby metody Remove pobierajacej obiekt Row..? czegos ala:

datagridview.Rows.Remove(datagridview.CurrentRow) ?

eee... no tak :D
dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1