Мне любопытно, как выполнить фильтрацию на стороне клиента, где задействован Javascript (возможно, его не нужно писать, но именно его будет запускать браузер пользователя).Ему не нужен ajax (хотя приветствуются решения, связанные с ajax).
Я новичок в программировании на Asp.NET.Этот пример относится к проблеме, с которой я сталкиваюсь на работе.Я много лет занимался прикладным программированием и даже немного php.Но изучение Asp.NET доставляет мне трудности (чего я не ожидал).
У меня есть три поля со списком.Но я хочу отфильтровать то, что вкладывается в них, основываясь на том, что выбрано и что доступно (дополнительная таблица).
Вот пример кодовой страницы.Сейчас в файле с выделенным кодом .vb есть только пустой Page.Load ().
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Sample Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:XmlDataSource ID="SqlDataSource1" runat="server">
<%--dropdownvaluesId categoryId value code
1 1 AndhraPradesh AP
2 1 Tamilnadu TN
3 2 South Carolina SC
4 2 Tennesse TN
5 3 Victoria Vic
6 3 New South Wales NSW
--%>
<Data>
<DropdownValues>
<DropdownValue dropdownvaluesId="-1" categoryId="1" value="" code="Blank" />
<DropdownValue dropdownvaluesId="1" categoryId="1" value="AndhraPradesh" code="AP" />
<DropdownValue dropdownvaluesId="2" categoryId="1" value="Tamilnadu" code="TN" />
<DropdownValue dropdownvaluesId="-1" categoryId="2" value="" code="Blank" />
<DropdownValue dropdownvaluesId="3" categoryId="2" value="South Carolina" code="SC" />
<DropdownValue dropdownvaluesId="4" categoryId="2" value="Tennesse" code="TN" />
<DropdownValue dropdownvaluesId="-1" categoryId="3" value="" code="Blank" />
<DropdownValue dropdownvaluesId="5" categoryId="3" value="Victoria" code="Vic" />
<DropdownValue dropdownvaluesId="6" categoryId="3" value="New South Wales" code="NSW" />
<DropdownValue dropdownvaluesId="7" categoryId="3" value="Queensland" code="QLD" />
</DropdownValues>
</Data>
</asp:XmlDataSource>
<asp:XmlDataSource ID="SqlDataSource2" runat="server">
<%--categoryId Name
1 India
2 USA
3 Australia
--%>
<Data>
<DropdownCategories>
<DropdownCatagory categoryId="1" Name="Inda" />
<DropdownCatagory categoryId="2" Name="USA" />
<DropdownCatagory categoryId="3" Name="Australia" />
</DropdownValues>
</Data>
</asp:XmlDataSource>
<asp:XmlDataSource ID="SqlDataSource3" runat="server">
<%---- Available Combinations --
india_dropdownvalueId usa_dropdownvalueId australia_dropdownvalueId
1 3 5
1 3 6
1 3 5
1 4 7
--%>
<Data>
<AvailableCombinations>
<Combination india_dropdownvalueId="1" usa_dropdownvalueId="3" australia_dropdownvalueId="5" />
<Combination india_dropdownvalueId="1" usa_dropdownvalueId="3" australia_dropdownvalueId="6" />
<Combination india_dropdownvalueId="1" usa_dropdownvalueId="4" australia_dropdownvalueId="7" />
</DropdownValues>
</Data>
</asp:XmlDataSource>
<asp:XmlDataSource ID="IndiaDataSource" runat="server">
<Data>
<DropdownValues>
<DropdownValue dropdownvaluesId="-1" categoryId="1" value="" code="Blank" />
<DropdownValue dropdownvaluesId="1" categoryId="1" value="AndhraPradesh" code="AP" />
<DropdownValue dropdownvaluesId="2" categoryId="1" value="Tamilnadu" code="TN" />
</DropdownValues>
</Data>
</asp:XmlDataSource>
<asp:XmlDataSource ID="USADataSource" runat="server">
<Data>
<DropdownValues>
<DropdownValue dropdownvaluesId="-1" categoryId="2" value="" code="Blank" />
<DropdownValue dropdownvaluesId="3" categoryId="2" value="South Carolina" code="SC" />
<DropdownValue dropdownvaluesId="4" categoryId="2" value="Tennesse" code="TN" />
</DropdownValues>
</Data>
</asp:XmlDataSource>
<asp:XmlDataSource ID="AustraliaDataSource" runat="server">
<Data>
<DropdownValues>
<DropdownValue dropdownvaluesId="-1" categoryId="3" value="" code="Blank" />
<DropdownValue dropdownvaluesId="5" categoryId="3" value="Victoria" code="Vic" />
<DropdownValue dropdownvaluesId="6" categoryId="3" value="New South Wales" code="NSW" />
<DropdownValue dropdownvaluesId="7" categoryId="3" value="Queensland" code="QLD" />
</DropdownValues>
</Data>
</asp:XmlDataSource>
<%-- <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
SelectCommand="SELECT [CategoryID], [Value], [Code], [dropdownValuesID] FROM [DropdownValues]"></asp:SqlDataSource>
--%>
<table cellpadding="2" cellspacing="2">
<tr>
<td><asp:Label ID="Label1" runat="server" Text="States in India"></asp:Label></td>
<td><asp:DropDownList ID="ddlIndia" runat="server" DataSourceID="IndiaDataSource" DataTextField="value" DataValueField="code" ColumnName="CategoryID" EmptyDataText="No Items Found" FilterBy="1" UIFriendlyText="Select State"></asp:DropDownList></td>
<td width="100px"> </td>
<td><asp:Label ID="Label2" runat="server" Text="States in USA"></asp:Label></td>
<td><asp:DropDownList ID="ddlUSA" runat="server" DataSourceID="USADataSource" DataTextField="value" DataValueField="code" ColumnName="CategoryID" EmptyDataText="No Items found" FilterBy="2" UIFriendlyText="Select State"></asp:DropDownList></td>
<td width="100px"> </td>
<td><asp:Label ID="Label3" runat="server" Text="States in Australia"></asp:Label></td>
<td><asp:DropDownList ID="ddlAustralia" runat="server" DataSourceID="AustraliaDataSource" DataTextField="value" DataValueField="code" ColumnName="CategoryID" EmptyDataText="No Items found" FilterBy="2" UIFriendlyText="Select State"></asp:DropDownList></td>
</tr>
</table>
</div>
</form>
</body>
</html>
Итак, изначально в ddlIndia будет только один элемент - AndhraPradesh;два пункта в ddlUSA - Южная Каролина и Теннесси;и три предмета в Австралии - Виктория, Новый Южный Уэльс, Квинсленд.Бланк также должен заполнить эти выпадающие списки.Но я не считаю их элементами.
Если вы выберете Квинсленд, ddlUSA необходимо отфильтровать, чтобы разрешить выбор только Теннесси или бланка, а ddlIndia необходимо отфильтровать, чтобы разрешить выбор AndhraPradesh или пробела (чтопо умолчанию для ddlIndia).
Я ценю любые ссылки на сайты, где я могу узнать это сам.Я не ищу бесплатный раздаточный материал.Просто потратить пару дней, пытаясь найти информацию и примеры того, как это сделать, становится бесплодным.
Я не возражаю против VB.NET или C #, если требуется выделение кода.Я думаю, VB.NET, если вы не можете решить, и это проще всего для вас.
Надеюсь, полезно,
TamusJRoyce
ps Я работаю утром, так что я будубыть снова около 12 часов.Уйти спать с другим днем без решения. Пример проекта - исходный код.