following problem:
I bounded two DropDownLists via two different XMLDataSources to one XML. Both XMLDataSources were initialised with a XPath argument whereby the second DataSource depend on the first one. If I perform a SelectedIndexChanged at the first DropDown I update the
second DataSource with a new XPath to get a new List for my second DropDown. This works well, but NOT if i perform a SelectedIndexChanged to the Element which was initialized. An Example:
Dropdown1: Initialized with A,B and C; A is selected
Dropdown2: Initialized with Content of A for e.g. A1,A2,A3
If I click B
Dropdown gets initialized with B1,B2,B3
If i go back to A1
Nothing happened. No update in my DropDown2..
I can switch between B and C and it works well, but i cannot switch back to the initialized one (A).
There's no error occur. If i switch back to the entry A (which was the initalized entry) it just happens nothing! DropDownList2 don't refresh and still keep values (e.g. C1, C2, C3 instead of refreshing and containing A1, A2, A3) of the last clicked entry
(in this case C).
I cannot find an error in my code, it works well by switching all other entries instead of the initialized one (A). In a testcase, i extended the XML file with a "dummy entry" such as "<parent name="Please Select"></parent>. Then, the initialized element
is not A, it's "Please Select" after this, i can switch between A, B and C and the DropDownList2 gets updated with no problems, but NOT if I switch back again to "Please Select". The expected behaviour should be an empty DropDownList2, because no childs are
given to this parent.
Again: DropDownList2 should get updated in dependence on DropDownList1. But DropDownList2 don't update if I switch back to that element which was initialized with DropDownList1. (e.g. "A" or "Please Select").
sgsensai
0 Points
2 Posts
Problem with Databinding DropDownList, XMLDataSource, XPath
Feb 24, 2013 04:17 PM|LINK
Hi,
following problem:
I bounded two DropDownLists via two different XMLDataSources to one XML. Both XMLDataSources were initialised with a XPath argument whereby the second DataSource depend on the first one. If I perform a SelectedIndexChanged at the first DropDown I update the second DataSource with a new XPath to get a new List for my second DropDown. This works well, but NOT if i perform a SelectedIndexChanged to the Element which was initialized. An Example:
Dropdown1: Initialized with A,B and C; A is selected
Dropdown2: Initialized with Content of A for e.g. A1,A2,A3
If I click B
Dropdown gets initialized with B1,B2,B3
If i go back to A1
Nothing happened. No update in my DropDown2..
I can switch between B and C and it works well, but i cannot switch back to the initialized one (A).
My code as follows:
XML
<MyProg name="MyProg"> <Parent name="A"> <Child name="A1"></Child> <Child name="A2"></Child> <Child name="A3"></Child> </Parent> <Parent name="B"> <Child name="B1"></Child> <Child name="B2"></Child> <Child name="b3"></Child> </Parent> <Parent name="C"> <Child name="C1"></Child> <Child name="C2"></Child> <Child name="C3"></Child> </Parent> </MyProg>Code:
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Label ID="Label1" runat="server" Text="Parent: "></asp:Label> <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" DataSourceID="myXML_1" DataTextField="name" DataValueField="name" Height="20px" onselectedindexchanged="DropDownList1_SelectedIndexChanged" Width="126px"> </asp:DropDownList> <br /> <asp:XmlDataSource ID="myXML_1" runat="server" DataFile="~/App_Data/myXML.xml" XPath="/MyProg/Parent"> </asp:XmlDataSource> <asp:Label ID="Label2" runat="server" Text="Child: "></asp:Label> <asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="myXML_2" DataTextField="name" DataValueField="name" Height="20px" Width="126px" AutoPostBack="true"> </asp:DropDownList> <asp:XmlDataSource ID="myXML_2" runat="server" DataFile="~/App_Data/myXML.xml" XPath="/MyProg/Parent[@name='A']/Child> </asp:XmlDataSource> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged"/> </Triggers> </asp:UpdatePanel>Code behind:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { myXML_2.XPath = "/MyProg/Parent[@name='" + DropDownList1.Text + "']/Child"; }I'm really looking forward to any help.
Greetz
ToughMan
Participant
1490 Points
635 Posts
Re: Problem with Databinding DropDownList, XMLDataSource, XPath
Feb 28, 2013 06:39 AM|LINK
What error?
sgsensai
0 Points
2 Posts
Re: Problem with Databinding DropDownList, XMLDataSource, XPath
Mar 07, 2013 10:06 AM|LINK
Hi,
thanks for reply!
There's no error occur. If i switch back to the entry A (which was the initalized entry) it just happens nothing! DropDownList2 don't refresh and still keep values (e.g. C1, C2, C3 instead of refreshing and containing A1, A2, A3) of the last clicked entry (in this case C).
I cannot find an error in my code, it works well by switching all other entries instead of the initialized one (A). In a testcase, i extended the XML file with a "dummy entry" such as "<parent name="Please Select"></parent>. Then, the initialized element is not A, it's "Please Select" after this, i can switch between A, B and C and the DropDownList2 gets updated with no problems, but NOT if I switch back again to "Please Select". The expected behaviour should be an empty DropDownList2, because no childs are given to this parent.
Again: DropDownList2 should get updated in dependence on DropDownList1. But DropDownList2 don't update if I switch back to that element which was initialized with DropDownList1. (e.g. "A" or "Please Select").
Hopefully you understand my problem