Asp.Net教程,WinForm教程,Asp.Net MVC,vs2008教程,vs2010教程,Silverlight技术,源码下载,Asp.Net视频教程
全站热门标签
vs2010 Silverlight 存储过程 水晶报表 LINQ ADO.NET JavaScript DataGridView GridView AjaxPro DevExpress 面向对象 Extjs XML HTML教程 Oracle jQuery WPF MVC 分页 Office2010 GDI+ Visual C++2010 Dojo MySQL VB.NET WCF4.0 ASPxGridView WinForm textbox Sql2005 cookie Discuz!NT checkbox WCF SQL经典语句 T-SQL F# asp.net VS2008 SQL Ajax DropDownList VS2008新特性 TreeView Access Flex 页面执行时间 字符串 DataSet VB2005 回调 动画 C#时间 游戏 ASP.NET MVC
尚未分类 LINQ教程 Enterprise技术 性能优化/调试 水晶报表与打印 安全与加密 图形图像 文件处理 基础教程 Web Services 内置对象 控件示例 正则表达式\采集 ADO.NET 缓存\泛型\线程XML技术 Url重写\静态页 vs2008综合教程
当前位置: 主页 > ASP.NET教程 > XML技术 >

使用XMLDataSource简单实现多级下拉菜单

时间:2010-01-28 20:38来源:未知 作者:admin 点击:

1. 创建XML源。格式如下:

     <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<China>
    <Province Name="北京市" PostalCode="110000">
      <City Name="市辖区" PostalCode="110100">
        <county Name="东城区" PostalCode="110101"/>
        <county Name="西城区" PostalCode="110102"/>
        <county Name="崇文区" PostalCode="110103"/>
        ..........
        <county Name="怀柔区" PostalCode="110116"/>
        <county Name="平谷区" PostalCode="110117"/>
      </City>
      <City Name="县" PostalCode="110200">
        <county Name="密云县" PostalCode="110228"/>
        <county Name="延庆县" PostalCode="110229"/>
      </City>
    </Province>
    <Province Name="天津市" PostalCode="120000">
      <City Name="市辖区" PostalCode="120100">
        <county Name="和平区" PostalCode="120101"/>
       ...........
        <county Name="西青区" PostalCode="120111"/>
        <county Name="津南区" PostalCode="120112"/>
        <county Name="北辰区" PostalCode="120113"/>
        <county Name="武清区" PostalCode="120114"/>
        <county Name="宝坻区" PostalCode="120115"/>
      </City>
      <City Name="县" PostalCode="120200">
        <county Name="宁河县" PostalCode="120221"/>
        <county Name="静海县" PostalCode="120223"/>
        <county Name="蓟县" PostalCode="120225"/>
      </City>
    </Province>
</China>

2. 建立三个DropDownList (AutoPostBack为True)和三个XmlDataSource ,省份列表直接绑定即可。

      <form id="form1" runat="server">
      <div>
          <label>省    份</label>
          <asp:DropDownList ID="Provinces" runat="server" DataSourceID="ProvinceList" DataTextField="Name" DataValueField="PostalCode" OnSelectedIndexChanged="Provinces_SelectedIndexChanged" AutoPostBack="True">
          </asp:DropDownList><asp:XmlDataSource ID="ProvinceList" runat="server" DataFile="~/incxml/State.xml"
              XPath="China/Province"></asp:XmlDataSource>
          <label>城    市</label>
          <asp:DropDownList ID="Cities" runat="server" AutoPostBack="True" OnSelectedIndexChanged="Cities_SelectedIndexChanged">
          </asp:DropDownList><asp:XmlDataSource ID="CityList" runat="server" DataFile="~/incxml/State.xml"
              XPath="China/Province/City"></asp:XmlDataSource>
          <label>区    县</label>
          <asp:DropDownList ID="County" runat="server">
          </asp:DropDownList><asp:XmlDataSource ID="CountyList" runat="server" DataFile="~/incxml/State.xml"
              XPath="China/Province/City/county"></asp:XmlDataSource>
      </div>
      </form>

3。省份和城市列表的OnSelectedIndexChanged事件,指定相应列表的DataSourceID属性即可,同时把相应的XMLDataSource的XPath属性更改

      protected void Provinces_SelectedIndexChanged(object sender, EventArgs e)
      {
          CityList.XPath = "China/Province[@PostalCode=" + Provinces.SelectedValue + "]/City";
          Cities.DataSourceID = "CityList";
          Cities.DataTextField = "Name";
          Cities.DataValueField = "PostalCode";
      }
      protected void Cities_SelectedIndexChanged(object sender, EventArgs e)
      {
          CountyList.XPath = "China/Province[@PostalCode=" + Provinces.SelectedValue + "]/City[@PostalCode=" + Cities.SelectedValue + "]/county";
          County.DataSourceID = "CountyList";
          County.DataTextField = "Name";
          County.DataValueField = "PostalCode";
      }

Tags:
责任编辑:admin
返回顶部
------分隔线----------------------------
推荐内容
骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价 骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价