Sortowanie DataGridView - index'y

0

Witam kolegów (i koleżanki?)!

Natknąłem się pewien problem z sortowaniem DataGridView, który zbindowany jest z DataSet'em.

dataGridView1.DataSource = ds.Tables["TABELA"];

W DGV wyświetlam tylko kilka kolumn (AutoGenerateColumns wyłączone) oraz jedną która jest ukryta - id. Jest ona jednocześnie primarykey'em w datasecie.
Po zaznaczeniu któregoś z wyświetlonych wierszy w DGV wypełniam danymi, pobranymi z datasetu, kilkanaście textBoxów.

Poprzez event DGV_SelectionChanged pobieram ID i wyszukuje wpisu o tej samej wartości w DataSecie.

foreach(DataGridViewRow dgvRow in dataGridView1.SelectedRows)
{
pobraneId = dgvRow.Cells["id"].Value;
}

datasetIndex = ds.Tables["TABELA"].DefaultView.Find(pobraneId);

Tak otrzymuje index interesującego mnie wiersza w tabeli. Następnie przesyłam dane do kontrolek.

kontrolka.Text = ds.Tables["TABELA"].Rows[datasetIndex][1].ToString();
kontrolka2.Text = ds.Tables["TABELA"].Rows[datasetIndex][2].ToString();

Wszystko działa tak jak powinno do momentu kiedy nie posortuje wpisów w DGV naciskając na "header". Po takim posortowaniu wartość "pobraneId" ustawia się na "-1". Od razu wywala błąd o braku wpisu w dataSecie o podanym indexie.
Czyżby sortowanie DGV miało wpływ na sortowanie wpisów w DataSecie? o.O

Niestety wyłączenie sortowania kolumn nie wchodzi w grę ;)
Z góry dziękuję za poświęcony mojemu problemowi czas.

0

Łomatkobosko! Ale kombinacje norweskie...
Zbinduj te dwa textBoxy z tym samym źródłem danych, a po kliknięciu (zmianie aktywnego wiersza) automatycznie ci się wypełnią. Bez pisania linijki kodu...

0
Marcin.Miga napisał(a)

Zbinduj te dwa textBoxy z tym samym źródłem danych, a po kliknięciu (zmianie aktywnego wiersza) automatycznie ci się wypełnią.

Mógłbyś wystukać tą idee w kodzie? Nie rozumiem o jakie źródło danych chodzi.

0

Poczytaj o bindowaniu, nie musisz ręcznie wyszukiwać rekordu i wypełniać właściwości kontrolek, można to powierzych miechanizmom bindowania o których napisał Marcin

żeby daleko nie szukać na hasło c# binding pierwszy link z google http://www.akadia.com/services/dotnet_databinding.html

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