读取部分xml

来源:互联网 发布:大数据营销与创新答案 编辑:程序博客网 时间:2024/06/06 13:00
自己解决了.不过不知道有没有更好的方法. protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ProvinceFill(); CityFill(); CountyFill(); } } /// /// 用数组存储绑定DataView数据源返回所选字段唯一值 /// /// DataView视图 /// 数组参数 /// 筛选字段 /// 返回column_name唯一值 private ArrayList GetDistinctData(ref DataView dv, ref ArrayList al, string column_name) { bool existed = false; foreach (DataRowView dr in dv) { existed = false; for (int i = 0; i < al.Count; i++) { if (dr[column_name].ToString() == al[i].ToString()) { existed = true; } } if (existed == false) { al.Add(dr[column_name]); } } return al; } /// ///绑定省市数据到控件 /// protected void ProvinceFill() { //清空省市选项 ddlProvince.Items.Clear(); DataSet ds = new DataSet( "Cities "); ds.Clear(); ds.ReadXml(Server.MapPath( "..//App_Data//Citys.xml ")); DataTable dt = ds.Tables[0]; DataView pdv = new DataView(dt); ArrayList pal = new ArrayList(); GetDistinctData(ref pdv, ref pal, "Province "); ddlProvince.DataSource = pal; ddlProvince.DataBind(); } /// /// 绑定所选省市下的城市或地区到控件 /// protected void CityFill() {//清空城市地区选项 ddlCity.Items.Clear(); DataSet ds = new DataSet( "Cities "); ds.Clear(); ds.ReadXml(Server.MapPath( "..//App_Data//Citys.xml ")); DataTable dt = ds.Tables[0]; DataView cdv = new DataView(dt); cdv.RowFilter = "Province= ' " + ddlProvince.SelectedItem.Text + " ' "; ArrayList cal = new ArrayList(); GetDistinctData(ref cdv, ref cal, "City "); ddlCity.DataSource = cal; ddlCity.DataBind(); } /// /// 绑定数据到所选城市或地区管辖下的县市到控件 /// protected void CountyFill() { //清空市县选项 ddlCounty.Items.Clear(); DataSet ds = new DataSet( "Cities "); ds.Clear(); ds.ReadXml(Server.MapPath( "..//App_Data//Citys.xml ")); DataTable dt = ds.Tables[0]; DataView ctdv = new DataView(dt); ctdv.RowFilter = "Province= ' " + ddlProvince.SelectedItem.Text + " ' and City= ' " + ddlCity.SelectedItem.Text + " ' "; ArrayList ctal = new ArrayList(); GetDistinctData(ref ctdv, ref ctal, "County "); ddlCounty.DataSource = ctal; ddlCounty.DataBind(); } protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e) { CityFill(); CountyFill(); } protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e) { CountyFill(); }
原创粉丝点击