24. august 2005 - 10:26Der er
14 kommentarer og 1 løsning
Datagrid.datasource efter itemdatabound
Har et datagrid hvor der startes med at tilføjes en datasource fra en database. Derpå under itemdatabound eventen bliver der tilføjet to nye kolonner med data til datagriddet.
Hvordan får jeg nu fat i ALLE data fra datagriddets source? Prøver at få fat på dem med datagrid.datasource men der får jeg kun de fire (af ialt 6 kolonner) data mens de sidste to ikke indeholder noget.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
når itemdatabound kaldes, så er det fordi du er ved at databinde, og har noget data at binde til. det betyder så igen, at dit grid allerede har en datasource, som på en eller anden måde er tilgængelig, da du jo har påtrykt den på griddet.... såh... jeg forstår ikke helt hvad du spørger om. mv
Som jeg kan forstå ud fra den kode jeg arbejde med er at der bliver smidt data ind i datagriddet svarende til 4 kolonner fra databasen. Der er i alt seks i datagriddet. Under itembound bliver der igen tilgået til databasen og der bliver så smidt data ind i de to sidste kolonner ved at tilføje dem til e.Item.Cells(4).Text = et eller andet.
Er der nogen måde at jeg kan få samtlige data når jeg ser et færdigt grid. Ser en masse tekst i de forskellige kolonner, hvordan får jeg alt det?
det smarteste ville være hvis du sørgede for at definere dit datagrundlag, så det indeholdt tilstrækkeligt data fra starten. altså simpelthen lave en datatabel med de kolonner du har behov for, og så fylde den med data, men du kan løbe griddet igennem hvis du vil :
Okay det lyder helt fint. Hvordan får jeg så det jeg får derfra smidt i et nyt datagrid.
Med den samme opstilling, navne på kolonner og det hele. Lad os sige jeg henter item.Cell(0).Text hvordan går jeg det selvsamme smidt over i item.Cell(0) bare i et nyt datagrid med et andet navn?
øhh.... ?!?! du har noget kode der genererer dig et datagrid på en form, med det indhold der skal være... hvis du vil bruge opsætning af grid mv på flere forms - så læg det i en user control, som vi skrev om tidligere - så kan du bruge den på alle de forms du vil. mvh
Det er ikke opsætning, skal bare udfra det data der ligger i det ene datagrid lave et andet datagrid med samme informationer i. Det er ligemeget med udseendet af det bare de rigtige data er i, med de rigtige kolonner.
hvis du har kode til at lave et grid - hvad er det så der er problemet i at lave 2 ? du kan jo bare kopiere det du har ind på en anden form - så er det fikset, og hvis du vil undgå at have kopieret kode, så læg det i en usercontrol. mvh
Ville gerne se om man kunne gøre det på den anden måde. Så der bare skal skrives lidt kode for at hente selve data. Som fx. Datasource gør. Den henter dog kun de data som der blev hentet helt fra starten af og ikke nogle andre, mangler de to sidste kollonners data.
jeg kunne sagtens bare kopiere det andet, men vil også gerne lære lidt om selve ASP.NET så gider ikke bare kopiere. Men som jeg kan se er det andet kode også meget rodet, og burde slet ikke være lavet sådan fra starten. har dog desværre ikke muligheden for at lave det om, ellers havde jeg gjort det.
Har endnu ikke prøvet det. Men sådan som jeg forstår det er at man opretter controls som man kan genbruge igen, det kan være modificerede controls eller bare egne controls. Er jeg helt gal på den?
nej - det er du ikke. hvis du bruger visual studio kan du bare tilføje et nyt projektitem af typen usercontrol, så få du en template til det.
så flytter du bare aspx'en og den code-behind der bruges i forbindelse med griddet og i den, og trækker den ind på de sider hvor du har lyst til at bruge den.
at arbejde med en user control i VS, er nøjagtig det samme som at arbejde med en form. du har en ascx-fil (istedet for aspx), og du har en codebehind-fil.
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.