Avatar billede heloo Nybegynder
30. maj 2006 - 11:18 Der er 13 kommentarer og
1 løsning

binde XmlDocument på datagrid

Hvordan binder man et XmlDocument på et datagrid?
Avatar billede snepnet Nybegynder
30. maj 2006 - 14:07 #1
Du hælder det ind i et dataset, og databinder til det.

DataSet ds = new DataSet();
ds.ReadXml("dinxmlfil.xml");

someDataGrid.DataSource = ds;
someDataGrid.DataBind();

Eller også skifter du til ASP.NET 2.0 og benytter et gridview og en XmlDataSource.

Mvh
Avatar billede heloo Nybegynder
30. maj 2006 - 14:17 #2
hej snep ;-)
jaaa men xml filen ligger i mit XmlDocument object...


XmlDocument objXDoc = new XmlDocument();
objXDoc.Load(min xml fil);

og man kan vist ikke:
someDataGrid.DataSource = objXDoc;
someDataGrid.DataBind();
Avatar billede snepnet Nybegynder
30. maj 2006 - 14:45 #3
Du kan jo bare loade det til et dataset istedet for til et xmldocument.... I begge tilfælde læser du en fil ind.
Mvh
Avatar billede heloo Nybegynder
30. maj 2006 - 14:55 #4
ja du har ret, men jeg henter xml filen remote og det var egentelig for un at hente den én gang. og jeg bruger iforvejen objXDoc som jeg arbejder på... så man må da kunne binde det på mit grid også?
Avatar billede snepnet Nybegynder
30. maj 2006 - 15:09 #5
Om du bruger det ene eller anden medfører vel ikke at du skal hente det flere eller færre gange.
Du kan få vist din xml ved at benytte xml-kontrollen... Det kan du desuden fordre med noget xsl(t) - så det præsenterer sig ordentligt.
Ellers.... hop op på 2.0 og brug gridview og xmldatasource ;o)
Mvh
Avatar billede heloo Nybegynder
30. maj 2006 - 15:16 #6
vi snakker forbi hinanden tror jeg...

DataSet ds = new DataSet();
ds.ReadXml(min xml fil);

XmlDocument objXDoc = new XmlDocument();
objXDoc.Load(min xml fil);

medfører da at jeg henter xml filen 2 gange ???
Avatar billede snepnet Nybegynder
30. maj 2006 - 15:37 #7
Ja bestemt - men hvis du bruger dataset, har du ikke umiddelbart noget at bruge dit xmldocument til.
Mvh
Avatar billede heloo Nybegynder
30. maj 2006 - 15:39 #8
jeg vil også kun bruge xmldocument.... det er det mit spm går på... :))
Avatar billede snepnet Nybegynder
30. maj 2006 - 15:43 #9
Ja - den er jeg med på, men du kan ikke databinde dit grid mod et xml-dokument i asp.net 1.1, og den typiske løsning er, at du opretter et dataset baseret på xml'en.
Hvis du vælger den løsning stritter du bare din xmldocument ud til højre... Du kan de samme ting (vanligvis på en mere intuitiv måde) med et dataset... Også gemme udsnit i en ny xmlfil etc.
Dog kan du som nævnt få præsenteret din xml vha. xml-kontrollen - typisk ledsaget af noget xsl(t).
Mvh
Avatar billede heloo Nybegynder
30. maj 2006 - 16:05 #10
oki, tror jeg har fattet det nu ;-)
send bare et svar..

men snøft.. nu har jeg lige lavet:
XmlNode RootNode = objXDocNew.SelectSingleNode("//properties");   
XmlNode Node = objXDocNew.SelectSingleNode("//property[@id ='"+l.Text+"']");
RootNode.RemoveChild(Node);

er det svært i et ds?
Avatar billede arne_v Ekspert
30. maj 2006 - 16:26 #11
man kan godt lave XmlDocument -> MemoryStream -> DataSet saa man undgaar at hente
XML filen to gange

om det er hensigtsmaessigt at lave noget af arbejdet med XmlDocument og noget med
DataSet er jeg ikke sikker paa

men man kan lave en in memory konvertering hvis man vil
Avatar billede snepnet Nybegynder
30. maj 2006 - 18:09 #12
Du kan snildt hente diverse ud fra datasets - prøv at kig på:
ds.Tables[0].Select(...) // du kan se mulighederne når du dotter ;o)
Og
DataView dv = new DataView(ds.Tables[0], ....)
Begge dele kan bruges.

Jeg ville nok bare lave hele arbejdet på dataset'et, men måske du kan bruge denne her til noget ;o)
http://www.ondotnet.com/pub/a/dotnet/2003/03/31/xmldatadocument.html

Mvh
Avatar billede snepnet Nybegynder
30. maj 2006 - 18:09 #13
Hov... også et svar :o)
Mvh
Avatar billede heloo Nybegynder
30. maj 2006 - 23:41 #14
tak ;-)
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
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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