<LinkTemp>
<LinkTemp_ID>1<LinkTemp_ID>
<Receiver_ID>3<Receiver_ID>
<Donor_ID>4</Donor_ID>
</LinkTemp>
<LinkTemp>
<LinkTemp_ID>2<LinkTemp_ID>
<Receiver_ID>6<Receiver_ID>
<Donor_ID>4</Donor_ID>
</LinkTemp>
<LinkTemp>
<LinkTemp_ID>1<LinkTemp_ID>
<Receiver_ID>3<Receiver_ID>
<Donor_ID>4</Donor_ID>
</LinkTemp>
<LinkTemp_ID>2<LinkTemp_ID>
<Receiver_ID>6<Receiver_ID>
<Donor_ID>4</Donor_ID>
<Link_ID>2<Link_ID>
<Receiver_ID>6<Receiver_ID>
<Donor_ID>4</Donor_ID>
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DonorStream.Load(Application.StartupPath & "/Donor.xml") 'My.Resources.Donor)
RecStream.Load(Application.StartupPath & "/receiver.xml") 'My.Resources.Receiver)
LinkStream.Load(Application.StartupPath & "/link.xml") 'My.Resources.Link)
BindNames()
FillCombos()
End Sub
Public Sub BindNames()
Dim lnk As XmlNodeList = LinkStream.SelectNodes("Root/LinkTemp")
Dim RecName As XmlNodeList = RecStream.SelectNodes("Root/Receiver")
Dim DonorName As XmlNodeList = DonorStream.SelectNodes("Root/Donor")
Dim donorlst As New DataTable()
donorlst.Columns.Add("ID")
donorlst.Columns.Add("Name")
Dim reclst As New DataTable
reclst.Columns.Add("ID")
reclst.Columns.Add("Name")
For Each n As XmlNode In lnk
Dim rID As Integer = Val(n.ChildNodes(0).InnerText)
Dim dID As Integer = Val(n.ChildNodes(1).InnerText)
For Each node As XmlNode In RecName
If node.ChildNodes(0).InnerText = rID.ToString Then
reclst.Rows.Add(New Object() {rID, node.ChildNodes(1).InnerText})
End If
Next
For Each node As XmlNode In DonorName
If node.ChildNodes(0).InnerText = dID.ToString Then
donorlst.Rows.Add(New Object() {node.ChildNodes(0).InnerText, node.ChildNodes(1).InnerText})
'Exit For
End If
Next
Next
CmbDonor.DataSource = donorlst
CmbDonor.DisplayMember = "Name"
CmbDonor.ValueMember = "ID"
CmbRec.DataSource = reclst
CmbRec.DisplayMember = "Name"
CmbRec.ValueMember = "ID"
End Sub
Public Sub FillCombos()
Dim RecName As XmlNodeList = RecStream.SelectNodes("Root/Receiver")
Dim DonorName As XmlNodeList = DonorStream.SelectNodes("Root/Donor")
Dim donorlst As New DataTable()
donorlst.Columns.Add("ID")
donorlst.Columns.Add("Name")
Dim reclst As New DataTable
reclst.Columns.Add("ID")
reclst.Columns.Add("Name")
For Each node As XmlNode In RecName
reclst.Rows.Add(New Object() {node.ChildNodes(0).InnerText, node.ChildNodes(1).InnerText})
Next
For Each node As XmlNode In DonorName
donorlst.Rows.Add(New Object() {node.ChildNodes(0).InnerText, node.ChildNodes(1).InnerText})
Next
donorlst.DefaultView.Sort = "Name ASC"
CmbDonor.DataSource = donorlst
CmbDonor.DisplayMember = "Name"
CmbDonor.ValueMember = "ID"
reclst.DefaultView.Sort = "Name ASC"
CmbRec.DataSource = reclst
CmbRec.DisplayMember = "Name"
CmbRec.ValueMember = "ID"
ComboDonor.DataSource = donorlst
ComboDonor.DisplayMember = "Name"
ComboDonor.ValueMember = "ID"
ComboReceiver.DataSource = reclst
ComboReceiver.DisplayMember = "Name"
ComboReceiver.ValueMember = "ID"
End Sub
Private Sub Next_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Next.Click
Dim NodeCount As Integer = LinkStream.SelectNodes("Root/Link").Count
If (NodeNumber < NodeCount) Then
NodeNumber += 1 'Move to some next node
Dim node As XmlNode = LinkStream.SelectSingleNode("Root/Link[" & NodeNumber & "]")
Dim Subnode1 As XmlNode = node.ChildNodes(0)
Dim Subnode2 As XmlNode = node.ChildNodes(1)
CmbRec.SelectedIndex = Val(Subnode1.InnerText) - 1
CmbDonor.SelectedIndex = Val(Subnode2.InnerText) - 1
Else
NodeNumber = 0 ' Reset count so start searching from zero (You can change strategy)
End If
End Sub
ASKER
ASKER
ASKER
ASKER
ASKER
ASKER
ASKER
ASKER
The successor to Active Server Pages, ASP.NET websites utilize the .NET framework to produce dynamic, data and content-driven web applications and services. ASP.NET code can be written using any .NET supported language. As of 2009, ASP.NET can also apply the Model-View-Controller (MVC) pattern to web applications
TRUSTED BY
It would be easier if you'd made the Element names more consistent between your XML objects.
You Have (by the way, your xml syntax is wrong - you're missing the / before some closing Element names
<LinkTemp>
<LinkTemp_ID>1<LinkTemp_ID
<Receiver_ID>3<Receiver_ID
<Donor_ID>4</Donor_ID>
</LinkTemp>
Why not have
<Links>
<Link>
<ID>1</ID>
<Receiver_ID>3</Receiver_I
<Donor_ID>4</Donor_ID>
</Link>
</Links>
Anyway, then it would be easy to use XML and LINQ to move elements between XElement instances.