所以我有两个下拉列表,第一个包含来自数据源的项目,其值为 GUID 和静态项目。
<asp:DropDownList runat="server" ID="CategoryDDL" DataSourceID="SqlDataSource1" DataTextField="Name" DataValueField="categoryID" AutoPostBack="True" AppendDataBoundItems="True" >
<asp:ListItem Value="(Select Category)">(New Category)</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionString%>" SelectCommand="SELECT categoryID, Name FROM category"></asp:SqlDataSource>
其他的下拉列表很类似,但是作为控制参数集读取的值首先,并且再次包含一个静态项。
<asp:DropDownList runat="server" ID="itemDDL" DataSourceID="SqlDataSource2" DataTextField="item" DataValueField="itemID">
<asp:ListItem Value="(Select Item)">(New Question)</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionString%>" SelectCommand="SELECT itemID, categoryID, item FROM Items WHERE (categoryID = @categoryID)">
<SelectParameters>
<asp:ControlParameter ControlID="CategoryDDL" Name="categoryID" PropertyName="SelectedValue" />
</SelectParameters>
</asp:SqlDataSource>
如果第二个值不存在,如何让下拉列表忽略我的第一个值的值。或者更好的是,有没有一种方法可以从代码中调用 SQL 数据源并填充下拉列表?