0

我使用 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"什么?

4

1 回答 1

0

删除 AppendDataBoundItems="true" & ItemType="E_Store_Template.Models.SubCategory" 并确保在设置数据源后没有使用 subCatDDL.Items.Add()

于 2013-03-27T12:00:19.027 回答