XML结合DropDownList控件实现联动下拉菜单
也许是之前被DropDownList折磨惨了,这两天时不时的都要研究下这个小玩意,今天写SiteMap的时候想起来DDL能和XMLDataSource绑定,不知道折腾起来怎么样。当然,DDL也可以直接和SiteMapDateSource进行绑定,但是我就不采用这个方法了。
XML文件,太长,折叠了一下,展开察看:
ASPX文件:
实现联动:
很简单,这次没有纠结10个小时了,哈哈...
XML文件,太长,折叠了一下,展开察看:
<?xml version="1.0" encoding="utf-8" ?>
<Main>
<Category Name="Movie" ChsName="电影" ID="01000000">
<ChildCategory Name="Literature" ChsName="文艺" ID="01010000" />
<ChildCategory Name="Act" ChsName="动作" ID="01020000" />
<ChildCategory Name="Comedy" ChsName="喜剧" ID="01030000" />
<ChildCategory Name="Love" ChsName="爱情" ID="01040000" />
<ChildCategory Name="Fiction" ChsName="科幻" ID="01050000" />
<ChildCategory Name="War" ChsName="战争" ID="01060000" />
<ChildCategory Name="Dracula" ChsName="恐怖" ID="01070000" />
<ChildCategory Name="Disaster" ChsName="灾难" ID="01080000" />
<ChildCategory Name="Ethic" ChsName="伦理" ID="01090000" />
<ChildCategory Name="Magic" ChsName="魔幻" ID="01100000" />
<ChildCategory Name="Cliffhang" ChsName="悬疑" ID="01110000" />
<ChildCategory Name="Music" ChsName="音乐" ID="01120000" />
<ChildCategory Name="Swordsmen" ChsName="武侠" ID="01130000" />
<ChildCategory Name="Criminal" ChsName="罪案" ID="01140000" />
<ChildCategory Name="Newsreel" ChsName="记录" ID="01150000" />
</Category>
<Categroy Name="Drama" ChsName="连续剧" ID="02000000">
<ChildCategory Name="Mainland" ChsName="大陆" ID="02010000" />
<ChildCategory Name="HongKong" ChsName="香港" ID="02020000" />
<ChildCategory Name="Taiwan" ChsName="台湾" ID="02030000" />
<ChildCategory Name="USA" ChsName="美国" ID="02040000" />
<ChildCategory Name="Japan" ChsName="日本" ID="02050000" />
<ChildCategory Name="Korea" ChsName="韩国" ID="02060000" />
</Categroy>
<Category Name="Entertaiment" ChsName="综艺" ID="03000000">
<ChildCategory Name="Mainland" ChsName="大陆" ID="03010000" />
<ChildCategory Name="HongKong" ChsName="香港" ID="03020000" />
<ChildCategory Name="Taiwan" ChsName="台湾" ID="03030000" />
<ChildCategory Name="Korea" ChsName="韩国" ID="03040000" />
</Category>
<Category Name="Anime" ChsName="动画" ID="04000000">
<ChildCategory Name="TV" ChsName="电视" ID="04010000" />
<ChildCategory Name="OVA" ChsName="OVA" ID="04020000" />
<ChildCategory Name="Theater" ChsName="剧场" ID="04030000" />
</Category>
<Category Name="Music" ChsName="音乐" ID="05000000">
<ChildCategory Name="MV" ChsName="MV" ID="05010000" />
<ChildCategory Name="OST" ChsName="影视原声" ID="05020000" />
<ChildCategory Name="China" ChsName="华语" ID="05030000" />
<ChildCategory Name="Korea" ChsName="韩语" ID="05040000" />
<ChildCategory Name="Japan" ChsName="日语" ID="05050000" />
<ChildCategory Name="Occident" ChsName="欧美" ID="05060000" />
</Category>
<Category Name="Game" ChsName="游戏" ID="06000000">
<ChildCategory Name="RPG" ChsName="角色扮演" ID="06010000" />
<ChildCategory Name="RTS" ChsName="即时战略" ID="06020000" />
<ChildCategory Name="Sports" ChsName="体育运动" ID="06030000" />
<ChildCategory Name="Action" ChsName="动作" ID="06040000" />
<ChildCategory Name="Adventure" ChsName="冒险" ID="06050000" />
<ChildCategory Name="Strategy" ChsName="策略" ID="06060000" />
</Category>
<Category Name="Soft" ChsName="软件" ID="07000000">
</Category>
<Category Name="Ebook" ChsName="电子书" ID="07000000">
<ChildCategory Name="Book" ChsName="图书" ID="07010000" />
<ChildCategory Name="Magazine" ChsName="杂志" ID="07020000" />
</Category>
<Category Name="Study" ChsName="学习" ID="08000000">
</Category>
</Main>
<Main>
<Category Name="Movie" ChsName="电影" ID="01000000">
<ChildCategory Name="Literature" ChsName="文艺" ID="01010000" />
<ChildCategory Name="Act" ChsName="动作" ID="01020000" />
<ChildCategory Name="Comedy" ChsName="喜剧" ID="01030000" />
<ChildCategory Name="Love" ChsName="爱情" ID="01040000" />
<ChildCategory Name="Fiction" ChsName="科幻" ID="01050000" />
<ChildCategory Name="War" ChsName="战争" ID="01060000" />
<ChildCategory Name="Dracula" ChsName="恐怖" ID="01070000" />
<ChildCategory Name="Disaster" ChsName="灾难" ID="01080000" />
<ChildCategory Name="Ethic" ChsName="伦理" ID="01090000" />
<ChildCategory Name="Magic" ChsName="魔幻" ID="01100000" />
<ChildCategory Name="Cliffhang" ChsName="悬疑" ID="01110000" />
<ChildCategory Name="Music" ChsName="音乐" ID="01120000" />
<ChildCategory Name="Swordsmen" ChsName="武侠" ID="01130000" />
<ChildCategory Name="Criminal" ChsName="罪案" ID="01140000" />
<ChildCategory Name="Newsreel" ChsName="记录" ID="01150000" />
</Category>
<Categroy Name="Drama" ChsName="连续剧" ID="02000000">
<ChildCategory Name="Mainland" ChsName="大陆" ID="02010000" />
<ChildCategory Name="HongKong" ChsName="香港" ID="02020000" />
<ChildCategory Name="Taiwan" ChsName="台湾" ID="02030000" />
<ChildCategory Name="USA" ChsName="美国" ID="02040000" />
<ChildCategory Name="Japan" ChsName="日本" ID="02050000" />
<ChildCategory Name="Korea" ChsName="韩国" ID="02060000" />
</Categroy>
<Category Name="Entertaiment" ChsName="综艺" ID="03000000">
<ChildCategory Name="Mainland" ChsName="大陆" ID="03010000" />
<ChildCategory Name="HongKong" ChsName="香港" ID="03020000" />
<ChildCategory Name="Taiwan" ChsName="台湾" ID="03030000" />
<ChildCategory Name="Korea" ChsName="韩国" ID="03040000" />
</Category>
<Category Name="Anime" ChsName="动画" ID="04000000">
<ChildCategory Name="TV" ChsName="电视" ID="04010000" />
<ChildCategory Name="OVA" ChsName="OVA" ID="04020000" />
<ChildCategory Name="Theater" ChsName="剧场" ID="04030000" />
</Category>
<Category Name="Music" ChsName="音乐" ID="05000000">
<ChildCategory Name="MV" ChsName="MV" ID="05010000" />
<ChildCategory Name="OST" ChsName="影视原声" ID="05020000" />
<ChildCategory Name="China" ChsName="华语" ID="05030000" />
<ChildCategory Name="Korea" ChsName="韩语" ID="05040000" />
<ChildCategory Name="Japan" ChsName="日语" ID="05050000" />
<ChildCategory Name="Occident" ChsName="欧美" ID="05060000" />
</Category>
<Category Name="Game" ChsName="游戏" ID="06000000">
<ChildCategory Name="RPG" ChsName="角色扮演" ID="06010000" />
<ChildCategory Name="RTS" ChsName="即时战略" ID="06020000" />
<ChildCategory Name="Sports" ChsName="体育运动" ID="06030000" />
<ChildCategory Name="Action" ChsName="动作" ID="06040000" />
<ChildCategory Name="Adventure" ChsName="冒险" ID="06050000" />
<ChildCategory Name="Strategy" ChsName="策略" ID="06060000" />
</Category>
<Category Name="Soft" ChsName="软件" ID="07000000">
</Category>
<Category Name="Ebook" ChsName="电子书" ID="07000000">
<ChildCategory Name="Book" ChsName="图书" ID="07010000" />
<ChildCategory Name="Magazine" ChsName="杂志" ID="07020000" />
</Category>
<Category Name="Study" ChsName="学习" ID="08000000">
</Category>
</Main>
ASPX文件:
<asp:XmlDataSource ID="CategoryList" runat="server" DataFile="~/innuCategory.xml"
XPath="Main/Category"></asp:XmlDataSource>
<asp:XmlDataSource ID="ChildCategoryList" runat="server" DataFile="~/innuCategory.xml"
XPath="/Main/Category/ChildCategory"></asp:XmlDataSource>
<table border="1" cellpadding="1" cellspacing="1">
<tr>
<td style="width: 125px">
<asp:Label ID="LabelCategory" runat="server" Text="请选择主分类:"></asp:Label></td>
<td style="width: 100px">
<asp:DropDownList ID="DdlCategory" runat="server" DataSourceID="CategoryList" DataTextField="ChsName"
DataValueField="ID" OnSelectedIndexChanged="CategorySelectedIndexChanged" AutoPostBack="True" Width="100px">
</asp:DropDownList></td>
</tr>
<tr>
<td style="width: 125px">
<asp:Label ID="LabelChildCategory" runat="server" Text="请选择子分类:"></asp:Label></td>
<td style="width: 100px">
<asp:DropDownList ID="DdlChildCategory" runat="server" DataSourceID="ChildCategoryList"
DataTextField="ChsName" DataValueField="ID" AutoPostBack="True" Width="100px">
</asp:DropDownList></td>
</tr>
</table>
XPath="Main/Category"></asp:XmlDataSource>
<asp:XmlDataSource ID="ChildCategoryList" runat="server" DataFile="~/innuCategory.xml"
XPath="/Main/Category/ChildCategory"></asp:XmlDataSource>
<table border="1" cellpadding="1" cellspacing="1">
<tr>
<td style="width: 125px">
<asp:Label ID="LabelCategory" runat="server" Text="请选择主分类:"></asp:Label></td>
<td style="width: 100px">
<asp:DropDownList ID="DdlCategory" runat="server" DataSourceID="CategoryList" DataTextField="ChsName"
DataValueField="ID" OnSelectedIndexChanged="CategorySelectedIndexChanged" AutoPostBack="True" Width="100px">
</asp:DropDownList></td>
</tr>
<tr>
<td style="width: 125px">
<asp:Label ID="LabelChildCategory" runat="server" Text="请选择子分类:"></asp:Label></td>
<td style="width: 100px">
<asp:DropDownList ID="DdlChildCategory" runat="server" DataSourceID="ChildCategoryList"
DataTextField="ChsName" DataValueField="ID" AutoPostBack="True" Width="100px">
</asp:DropDownList></td>
</tr>
</table>
实现联动:
protected void CategorySelectedIndexChanged(object sender, EventArgs e)
{
ChildCategoryList.XPath = "Main/Category[@ID=" + DdlCategory.SelectedValue + "]/ChildCategory";
DdlChildCategory.DataSourceID = "ChildCategoryList";
DdlChildCategory.DataTextField = "ChsName";
DdlChildCategory.DataValueField = "ID";
}
{
ChildCategoryList.XPath = "Main/Category[@ID=" + DdlCategory.SelectedValue + "]/ChildCategory";
DdlChildCategory.DataSourceID = "ChildCategoryList";
DdlChildCategory.DataTextField = "ChsName";
DdlChildCategory.DataValueField = "ID";
}
很简单,这次没有纠结10个小时了,哈哈...
posted on 2006-12-30 00:16 AntiGameZ 阅读(1160) 评论(3) 编辑 收藏 举报