我使用 3 个下拉菜单来过滤页面上的数据。这是下面的第二个下拉菜单。它根据第一个中选择的内容填充Dropdownlist
。
<asp:DropDownList runat="server" ID="subCatDDL"
AppendDataBoundItems="true"
ItemType="E_Store_Template.Models.SubCategory"
DataTextField="SubCategoryName"
DataValueField="SubCategoryID"
AutoPostBack="true"
CssClass="FilterMenu" Visible="false">
<asp:ListItem Selected="True" Text="SubCategories" Value="0" />
</asp:DropDownList>
这是我用来获取第二个 DropDownList 的所有数据的查询。
List<SubCategory> query = _db.SubCategories
.Where(x => x.Category.CategoryID == DDLcatId)
.Distinct()
.ToList();
subCatDDL.DataSource = query;
subCatDDL.DataBind();
所以我已经厌倦了很多不同的事情来清除 DropDownlistsubCatDDL.Items.Clear()
我尝试在重新填充之前设置 datasource = null 。我打电话给.Distinct。没有任何效果。
所以基本上,如果我选择一个项目,它会回发填充我正在过滤的项目,然后它会在我的下拉列表中创建该选定项目的副本。如果我搞砸了足够长的时间,我可以让第二个列表充满重复。我怎样才能解决这个问题?
清除下拉列表并在从 填充它时重新填充它的最佳方法是AutoPostBack="true"
什么?