Victor Charles
asked on
How to load grid based on values in xml file?
Hello,
I'm trying to load several grids based on the values in my xml file. For example my xml file is in the following format:
Thank you.
Victor
I'm trying to load several grids based on the values in my xml file. For example my xml file is in the following format:
<?xml version="1.0" standalone="yes" ?>
- <Root>
<NSN_ID>1</NSN_ID>
<NSN>1305-00-028-1111</NSN>
<Type>1</Type>
</Row>
- <Row>
- <Root>
<NSN_ID>2</NSN_ID>
<NSN>1305-00-028-1112</NSN>
<Type>1</Type>
</Row>
- <Row>
- <Root>
<NSN_ID>3</NSN_ID>
<NSN>1305-00-028-1113</NSN>
<Type>1</Type>
</Row>
- <Row>
<NSN_ID>4</NSN_ID>
<NSN>1305-00-028-1114</NSN>
<Type>2</Type>
</Row>
- <Row>
- <Row>
<NSN_ID>5</NSN_ID>
<NSN>1305-00-028-1115</NSN>
<Type>2</Type>
</Row>
- <Row>
<NSN_ID>3</NSN_ID>
<NSN>1305-00-028-1116</NSN>
<Type>3</Type>
</Row>
- <Row>
<NSN_ID>4</NSN_ID>
<NSN>1305-00-028-1117</NSN>
<Type>4</Type>
</Row>
</Root>
I would like to load Grid1 with NSN values where Type = 1, Grid2 with NSN values where type = 2, Grid3 with NSN values where Type = 3 etc..
How do I accomplish this when in the load event of my windows form?Thank you.
Victor
What you can do is read the whole XML, get the structure according the nodes and create a dataset with it, then create the grids and assign to each one the differents filters of your dataset and on this way you will have one dataset with your xml and all the grids that you want by the filter that you select.
Here is how to read xml into a dataset
http://www.a1vbcode.com/snippet-2391.asp
Once you have the dataset, you can do this
Dim dTemp1, dTemp2, dTemp3 as New DataTable
With dataset1.Tables(0)
.DefaultView.RowFilter = "Type=1"
dTemp1 = .DefaultView.ToTable()
.DefaultView.RowFilter = "Type=2"
dTemp2 = .DefaultView.ToTable()
.DefaultView.RowFilter = "Type=3"
dTemp3 = .DefaultView.ToTable()
End With
grid1.DataSource = dTemp1
grid2.DataSource = dTemp2
grid3.DataSource = dTemp3
http://www.a1vbcode.com/snippet-2391.asp
Once you have the dataset, you can do this
Dim dTemp1, dTemp2, dTemp3 as New DataTable
With dataset1.Tables(0)
.DefaultView.RowFilter = "Type=1"
dTemp1 = .DefaultView.ToTable()
.DefaultView.RowFilter = "Type=2"
dTemp2 = .DefaultView.ToTable()
.DefaultView.RowFilter = "Type=3"
dTemp3 = .DefaultView.ToTable()
End With
grid1.DataSource = dTemp1
grid2.DataSource = dTemp2
grid3.DataSource = dTemp3
ASKER
Hello,
I'm trying the code below, but getting error message "Can not find column "Type" ", any idea what I'm doing wrong?
Dim xmlPath1 As String
' ReaderOptions xml files
xmlPath1 = System.IO.Path.Combine(App lication.S tartupPath , "NSN.xml") 'grid1
'Populate dataset
dtsetcol1.ReadXml(xmlPath1 )
Dim dTemp1, dTemp2, dTemp3 As New DataTable
With dtsetcol1.Tables(0)
.DefaultView.RowFilter = "Type=1"
dTemp1 = .DefaultView.ToTable()
.DefaultView.RowFilter = "Type=2"
dTemp2 = .DefaultView.ToTable()
.DefaultView.RowFilter = "Type=3"
dTemp3 = .DefaultView.ToTable()
End With
Grid1.DataSource = dTemp1
Grid2.DataSource = dTemp2
Grid3.DataSource = dTemp3
Thanks,
Victor
I'm trying the code below, but getting error message "Can not find column "Type" ", any idea what I'm doing wrong?
Dim xmlPath1 As String
' ReaderOptions xml files
xmlPath1 = System.IO.Path.Combine(App
'Populate dataset
dtsetcol1.ReadXml(xmlPath1
Dim dTemp1, dTemp2, dTemp3 As New DataTable
With dtsetcol1.Tables(0)
.DefaultView.RowFilter = "Type=1"
dTemp1 = .DefaultView.ToTable()
.DefaultView.RowFilter = "Type=2"
dTemp2 = .DefaultView.ToTable()
.DefaultView.RowFilter = "Type=3"
dTemp3 = .DefaultView.ToTable()
End With
Grid1.DataSource = dTemp1
Grid2.DataSource = dTemp2
Grid3.DataSource = dTemp3
Thanks,
Victor
After reading the xml, check the Tables count. Set it as a datasource to a grid and see if the data is loaded correctly.
ASKER
How do you check the Tables count? below is my xml file, could the format also be the problem?
<?xml version="1.0" standalone="yes"?>
<Root>
<Row>
<NSN_ID>0</NSN_ID>
<NSN>NA</NSN>
<Type>0</Type>
</Row>
<Row>
<NSN_ID>1</NSN_ID>
<NSN>1305-00-028-1111</NSN >
<Type>1</Type>
</Row>
<Row>
<NSN_ID>2</NSN_ID>
<NSN>1305-00-028-1112</NSN >
<Type>2</Type>
</Row>
<Row>
<NSN_ID>3</NSN_ID>
<NSN>1305-00-028-1113</NSN >
<Type>3</Type>
</Row>
<Row>
<NSN_ID>4</NSN_ID>
<NSN>1305-00-028-1114</NSN >
<Type>4</Type>
</Row>
<Row>
<NSN_ID>3</NSN_ID>
<NSN>1305-00-028-1115</NSN >
<Type>5</Type>
</Row>
<Row>
<NSN_ID>4</NSN_ID>
<NSN>1305-00-028-1116</NSN >
<Type>6</Type>
</Row>
</Root>
<?xml version="1.0" standalone="yes"?>
<Root>
<Row>
<NSN_ID>0</NSN_ID>
<NSN>NA</NSN>
<Type>0</Type>
</Row>
<Row>
<NSN_ID>1</NSN_ID>
<NSN>1305-00-028-1111</NSN
<Type>1</Type>
</Row>
<Row>
<NSN_ID>2</NSN_ID>
<NSN>1305-00-028-1112</NSN
<Type>2</Type>
</Row>
<Row>
<NSN_ID>3</NSN_ID>
<NSN>1305-00-028-1113</NSN
<Type>3</Type>
</Row>
<Row>
<NSN_ID>4</NSN_ID>
<NSN>1305-00-028-1114</NSN
<Type>4</Type>
</Row>
<Row>
<NSN_ID>3</NSN_ID>
<NSN>1305-00-028-1115</NSN
<Type>5</Type>
</Row>
<Row>
<NSN_ID>4</NSN_ID>
<NSN>1305-00-028-1116</NSN
<Type>6</Type>
</Row>
</Root>
Did you try to set it as a data source to grid?
ASKER
I'm using the following code for the grid, what should I be using?
Grid1.DataSource = dTemp1
Grid2.DataSource = dTemp2
Grid3.DataSource = dTemp3
Thanks,
Victor
Grid1.DataSource = dTemp1
Grid2.DataSource = dTemp2
Grid3.DataSource = dTemp3
Thanks,
Victor
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Please close this case.
Thank You.
Victor
Thank You.
Victor
ASKER
Thank You.