我有两个下拉列表Category和SubCategory。当我选择特定类别时,SubCategory下拉列表会根据所选的类别值填充项目。然后我将选择保存在数据库中,一切正常。
根据查询字符串(ProductID)加载Category,SubCategory的值。当我重新访问页面(有/没有回发)时,SubCategory显示上一个项目!也许问题是需要添加默认值= 0,但是通过启用AppendDataBoundItems = True,列表中的项目会重复。
有什么想法吗?
<asp:DropDownList ID="ddlCategory" runat="server" DataSourceID="dsDNN" DataTextField="Name" DataValueField="CategoryID" AutoPostBack="True" AppendDataBoundItems="True" EnableViewState="True">
<asp:ListItem Value="0">-- SELECT --</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="dsDNN" runat="server" ConnectionString="<%$ ConnectionStrings:SiteSqlServer %>" SelectCommand="SELECT [CategoryID], [Name] FROM [tCategory]"></asp:SqlDataSource>
<asp:DropDownList ID="ddlSubcategory" runat="server" DataSourceID="dsSubCat" DataTextField="Name" DataValueField="SubCategoryID" EnableViewState="True" AutoPostBack="True">
</asp:DropDownList>
<asp:SqlDataSource ID="dsSubCat" runat="server" ConnectionString="<%$ ConnectionStrings:SiteSqlServer %>" SelectCommand="SELECT [SubCategoryID], [Name] FROM [tSubCategory] WHERE ([CategoryID] = @CategoryID)">
<SelectParameters>
<asp:ControlParameter ControlID="ddlCategory" Name="CategoryID" PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
答案 0 :(得分:0)
为什么不在填充子类别下拉列表的代码周围添加if语句。在第一个下拉列表中进行选择时,使用仅设置为true的条件