DropDownList在使用后填充重复数据

时间:2013-03-07 20:03:09

标签: c# asp.net linq entity-framework ef-code-first

我使用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"填充后重新填充下拉列表的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

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