Вопрос

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:

dictionary = doc.Root.Elements("state").ToDictionary(
                s => s.Attribute("name").Value,
                s => s.Elements("Location").ToDictionary(
                    loc => loc.Attribute("Name").Value,
                    loc => new Property
                    {
                        address = loc.Element("Address").Value,
                        datetime = loc.Element("DateNTime").Value
                    }));
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top