Asp.net dropdownlist中的不同值取决于我在另一个dropdownlist中选择的内容
我想制作和创建的内容:我想在asp.net中制作2个dropdownlist。假设第一个包含国家,第二个包含国家中的城市 假设我在第一个下拉列表中选择英格兰,那么在第二个下拉列表中,只有属于英格兰的城市才可见或可选择Asp.net dropdownlist中的不同值取决于我在另一个dropdownlist中选择的内容,asp.net,webforms,html-select,cascadingdropdown,Asp.net,Webforms,Html Select,Cascadingdropdown,我想制作和创建的内容:我想在asp.net中制作2个dropdownlist。假设第一个包含国家,第二个包含国家中的城市 假设我在第一个下拉列表中选择英格兰,那么在第二个下拉列表中,只有属于英格兰的城市才可见或可选择 <asp:DropDownList ID="Countries" runat="server"> // First dropdownlist <asp:ListItem>England</asp:ListItem> <as
<asp:DropDownList ID="Countries" runat="server"> // First dropdownlist
<asp:ListItem>England</asp:ListItem>
<asp:ListItem>Denmark</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="Citys" runat="server"> // Second dropdownlist
</asp:DropDownList>
//第一个下拉列表
英格兰
丹麦
//第二个下拉列表
我希望我对它的解释足够好,我希望有人能给我提供一些代码或提示。它被称为级联下拉列表,我建议查看ASP.NET AJAX控件工具包
CascadingDropDownList
控件
阅读教程
实际上,您将创建多个(本例中有两个)常规ASP.NET下拉列表服务器控件,以及所需的每一级级联的级联下拉列表服务器控件。这就是将两个下拉列表结合在一起的原因
所有数据获取都是通过ASP.NET AJAX页面方法完成的,这些方法本质上是页面托管的web服务方法,没有对页面本身的引用,因为它们是静态的,非常适合通过脚本(即客户端)向服务器请求数据并返回数据
注意:默认情况下,ASP.NET AJAX页面方法将数据编码为JSON,因此除非您希望返回JSON以外的内容(即XML),否则将看不到任何编码逻辑。您可以使用常规下拉列表执行此操作,并使用代码背后的处理程序使其级联: (警告-自己的博客帖子):
如果使用SqlDataSource,可以将所选值级联到CitySqlDataSource 这里是演示- 数据库 ASPX
城市来自哪里,您的数据库?无论哪种方式,这一点以前已经得到过无数次的回答:)。如果您想在不刷新页面的情况下完成此操作,则需要使用AJAX。这里的想法可能是提供声明性解决方案,而不是尽可能使用代码隐藏。。。
Countries Cities
Id Name Id CountryId Name
1 England 1 1 London
2 Denmark 2 2 Copenhagen
<asp:DropDownList ID="CountryDropDownList" runat="server"
DataSourceID="CountrySqlDataSource"
DataTextField="Name" DataValueField="Id" AutoPostBack="True">
</asp:DropDownList>
<asp:SqlDataSource ID="CountrySqlDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT Id,Name FROM [Countries]"></asp:SqlDataSource>
<asp:DropDownList ID="CityDropDownList" runat="server"
DataSourceID="CitySqlDataSource"
DataTextField="Name" DataValueField="Id">
</asp:DropDownList>
<asp:SqlDataSource ID="CitySqlDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT Id,Name FROM Cities WHERE CountryId=@CountryId">
<SelectParameters>
<asp:ControlParameter ControlID="CountryDropDownList"
PropertyName="SelectedValue"
Name="CountryId " Type="String"
DefaultValue="England" />
</SelectParameters>
</asp:SqlDataSource>