Avatar billede sekhmet_ds Nybegynder
04. marts 2003 - 23:12 Der er 10 kommentarer og
1 løsning

Opdatering af DataSet via sortered DataGrid

Jeg har et DataSet som jeg bruger til at populate et DataView, som så sørger for sortering af dataene.
DataView bruger jeg så til at populate et DataGrid.

Det fungere også fremragende, både med sortering og ved select og edit. Problemet opstår når jeg skal synkronisere ændring i DataGrid'et med mit DataSet.

Det Item jeg får fat i min handler til UpdateCommand eventen er det rigtige item, men jeg kan ikke få oversat indexet så det passer med det index itemet har i mit DataSet (eller mit DataView for den sags skyld).

Jeg har prøvet både med ItemIndex og DataSetIndex, men de er tilsyneladende altid ens.

Min kode fejl sådan set ikke noget, forudsat dataene ikke er blevet sorteret, så det er ikke der. Jeg får bare opdateret den forkerte række.

Nogen der ved hvordan man, udover at bruge slave metoden, kan gør det?
Avatar billede sekhmet_ds Nybegynder
04. marts 2003 - 23:13 #1
Beklager de mange stavefejl :)
Avatar billede burningice Nybegynder
04. marts 2003 - 23:25 #2
kan du ikke bruge FindRow metoden i dit dataview, til at returnere den row som du skal ændre i?
Avatar billede sekhmet_ds Nybegynder
04. marts 2003 - 23:53 #3
Det virkede fint. Jeg undre mig bare over at der ikke er en nem både at oversætte et index til et andet.

Men hva'...det er da bedre end at skulle løbe alle poster igennem og finde den manuelt (selvom det jo nok er det den gør alligevel).

Lav lige et svar så får du point.
Avatar billede burningice Nybegynder
05. marts 2003 - 00:01 #4
sekhmet_ds>> problemet er jo at når du har sorteret dit datagrid, så passer index for en row jo ikke med det tilsvarende index i dit dataset :( Altså bliver man nødt til at løbe alle rækkerne i datasettet igennem for at finde den der matcher med den du valgte i datagriddet.
Avatar billede sekhmet_ds Nybegynder
05. marts 2003 - 00:21 #5
Det er jeg med på, men burde DataSetIndex så ikke indeholde det korrekte index ind i mit DataSet? De har jo selvf været en tur omkring klienten, men derfor burde det jo ikke være noget problem i det mindste at gemme dem, og så lade det være op til udvikleren at sikre at de stadig gælder.
Avatar billede burningice Nybegynder
05. marts 2003 - 00:33 #6
Taget fra sdk:

Property Value
The index number of the DataGridItem object from the bound data source.

i og med at du binder dit datagrid til DataView'et er det vel index fra det og ikke DataSettet der gælder... og når du sorterer dit dataview så matcher Index i dit dataview og datagrid vel ikke hinanden?
Avatar billede sekhmet_ds Nybegynder
05. marts 2003 - 08:04 #7
Jamen, eftersom DataViewet har en direkte reference til rækkerne i mit DataSet har det jo samme effekt at jeg rette i Dataene i mit DataView som i mit DataSet.

Jeg har lige lavet et forsøg hvor jeg laver et DataSet med 10 tal i faldende rækkefølge. Disse sorterer jeg med et DataView og propper dem ind i et DataGrid. I den første celle har jeg værdien, og i den anden celle har jeg DataSetIndex, som jeg "manuelt" skriver ind efter Page.DataBind().

Cellen med DataSetIndex er altid lig med rækken i mit DataGrid, men hvis jeg udskriver Dataene fra mit DataView ved brug af DataSetIndex får jeg en anden række end den indexet peger på i mit DataGrid. Og dette er vel at mærke uden at jeg har haft nogen round-trips.

Hvad er det så lige jeg kan bruge DataSetIndex til?
Det er jo så et andet spr., hvorfor der skal oprettes et nyt indlæg, så lad os bare sige at det var det.
Avatar billede burningice Nybegynder
05. marts 2003 - 08:35 #8
sekhmet_ds>> tjaa... det kan du for så vel have ret i... og jeg må ærligt indrømme, at jeg ved det ikke. Jeg har aldrig brugt DataSetIndex, faktisk er det sjældent at jeg overhovedet bruget DataSet, og når jeg endelig gør, så plejer jeg at bruge DataView's FindRow-funktion.
Avatar billede sekhmet_ds Nybegynder
05. marts 2003 - 08:47 #9
Det vil jeg så også gøre i fremtiden :)
Avatar billede burningice Nybegynder
05. marts 2003 - 08:57 #10
sekhmet_ds>> jeg tror også det er det mest "rigtige"... I og med man bruger DataView tror jeg det er meningen at man skal bruge den til al kommunikation med DataSet'et... også sådan noget med at slette og tilføje rækker
Avatar billede sekhmet_ds Nybegynder
06. marts 2003 - 00:41 #11
Det kan du have ret i.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester