<?xml version="1.0" encoding="utf-8"?>
<Provinces>
<Province Code="110000" Name="北京市">
<City Code="110100" Name="北京"></City>
</Province>
<Province Code="120000" Name="天津市">
<City Code="120100" Name="天津"></City>
</Province>
</Provinces>
我想实现的效果是用双Repeater的方式,先读出省份,然后在通过省份名称显示出城市的名称。。
我用第一个Repeater已经可以把省份的内容已经读取出来了。
string dataFile = Server.MapPath("City.xml");
DataSet ds = new DataSet();
ds.ReadXml(dataFile); DataView pp = new DataView(ds.Tables[0]); this.City_Sheng.DataSource = pp;
this.City_Sheng.DataBind();但是读相应的城市的时候,就不知道应该怎么写了。请大家给个思路。。
把DataView pp = new DataView(ds.Tables[0]);改成DataView pp = new DataView(ds.Tables[1]);可以得到全部的城市,但没有区分。
Province
Province_Id Code Name
0 110000 北京市
1 120000 天津市City
Code Name Province_Id
110100 北京 0
120100 天津 1
给你个例子吧,两个方法,看看有没有帮助的~private void Province_view(string CurrentPath, DropDownList DDL_Province)
{
if (!Page.IsPostBack)
{
if (System.IO.File.Exists(CurrentPath))
{
DDL_Province.Items.Clear(); System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.Load(CurrentPath); XmlNodeList nodes = doc.DocumentElement.ChildNodes; XmlNode node1 = doc.DocumentElement.SelectSingleNode(@"Province/City[@Code='" + this.City + "']"); foreach (XmlNode node in nodes)
{
DDL_Province.Items.Add(new ListItem(node.Attributes["Name"].Value, node.Attributes["Code"].Value));
int n = DDL_Province.Items.Count - 1; if (node1 != null && node == node1.ParentNode)
DDL_Province.SelectedIndex = n;
}
}
else
{
this.LabelMessage.Text = "地市信息文件丢失!";
}
}
} private void City_view(string CurrentPath, DropDownList province,DropDownList city)
{
if (System.IO.File.Exists(CurrentPath))
{
city.Items.Clear(); System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.Load(CurrentPath); XmlNodeList nodes = doc.DocumentElement.ChildNodes[province.SelectedIndex].ChildNodes; foreach (XmlNode node in nodes)
{
city.Items.Add(new ListItem(node.Attributes["Name"].Value, node.Attributes["Code"].Value));
int n = city.Items.Count - 1;
if (Int32.Parse(node.Attributes["Code"].Value) == this.City)
{
city.SelectedIndex = n;
}
} if (city.SelectedIndex == -1)
city.SelectedIndex = 0;
}
else
{
this.LabelMessage.Text = "地市信息文件丢失!";
}
}
CurrentPath = this.Server.MapPath(".") + "\\include\\Province.xml";
Province_view(CurrentPath,DDL_Agent_Province);Province_SelectedIndexChanged的时候执行City_view方法~