我使用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();
所以我已经厌倦了很多不同的事情来清除DropDownlist subCatDDL.Items.Clear()
我尝试在重新填充之前设置datasource = null。我叫.Distinct。没有任何效果。
所以基本上如果我选择一个项目,它将进行回发填充我正在过滤的项目,然后它会在我的下拉列表中创建所选项目的副本。如果我把它弄得足够长,我可以让第二个列表充满重复。我该如何解决这个问题?
清除下拉列表并从AutoPostBack="true"
填充后重新填充下拉列表的最佳方法是什么?
答案 0 :(得分:0)
删除AppendDataBoundItems =“true”&amp; ItemType =“E_Store_Template.Models.SubCategory”并确保在设置数据源后没有使用subCatDDL.Items.Add()