My XML file is as follows,
<state name ="Alaska">
<Location Name="loc1">
<Address>xyz</Address>
<DateNTime>Saturday, Oct 2, 8pm</DateNTime>
</Location>
<Location Name="loc2">
<Address>abc</Address>
<DateNTime>Saturday, Oct 2, 10am</DateNTime>
</Location>
</state>
In this way I have 50 states. Every state will be in dropdown list and on click of the state the different locations with their address and times need to be displayed in grid view. This is the code
private static IDictionary<string, Dictionary<string, Property>> dictionary;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
XDocument doc = XDocument.Load(Server.MapPath("test2.xml"));
dictionary = doc.Root.Elements("state").ToDictionary(
state => state.Attribute("name").Value,
state => state.Elements("Location").ToDictionary(
location => location.Attribute("Name").Value,
Property));
var x = dictionary.Keys;
DropDownList1.DataSource = x;
DropDownList1.DataBind();
}
}
public void OnSelectedIndexChanged(Object sender, EventArgs e)
{
GridView1.DataSource = from item in dictionary[DropDownList1.SelectedItem.Text]
select new { col1 = item.Key, col2 = item.Value };
GridView1.DataBind();
}
public class Property
{
public string address;
public string datetime;
}
Here I am not knowing exactly how to declare IDictionary and retrieve data accordingly. Can anyone explain me that??
Try this: