DropDownList显示Item - 1(上一个)

时间:2015-05-20 13:34:27

标签: asp.net

我有两个下拉列表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>

1 个答案:

答案 0 :(得分:0)

为什么不在填充子类别下拉列表的代码周围添加if语句。在第一个下拉列表中进行选择时,使用仅设置为true的条件