当从数据库填充数据时,如何在下拉列表中添加选项“Any”?

时间:2013-07-15 16:47:41

标签: c# asp.net sql-server drop-down-menu

我有下拉列表,其中通过连接到数据库来添加值。

这是我的代码:

<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="devicetype" DataValueField="devicetype"></asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:PHSNew %>" SelectCommand="SELECT DISTINCT [devicetype] FROM [dx_devices]"></asp:SqlDataSource>

现在我想在下拉列表中再添加一个“Any”选项。

我该如何添加?

3 个答案:

答案 0 :(得分:3)

这应该这样做:

ddl_MyItems.Items.Insert(0, new ListItem("--Any--", String.Empty));
ddl_MyItems.SelectedIndex = 0;

答案 1 :(得分:3)

在您的DropDownList中,您需要添加AppendDataBoundItems="true"才能允许,DropDownList就像:

<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true" DataSourceID="SqlDataSource1" 
DataTextField="devicetype" DataValueField="devicetype">

<asp:ListItem Text="Any" Value="0"></asp:ListItem>

</asp:DropDownList>

答案 2 :(得分:2)

而不是在.aspx页面上添加数据源,在代码隐藏中的数据集中获取sql查询的结果,并手动将数据集中的所有项添加到下拉列表中,并在末尾添加“Any”项。你的下拉列表。

修改

替代方法:

将属性OnDataBound="DropDownList1_DataBound"添加到现有的下拉列表中。

<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="devicetype" DataValueField="devicetype" OnDataBound="DropDownList1_DataBound"></asp:DropDownList>

将以下代码添加到您的代码隐藏中。这将在绑定您在.aspx页面上指定的数据源之后在下拉列表的末尾添加Any项。

VB

Protected Sub DropDownList1_DataBound(sender As Object, e As EventArgs)
        Dim ite As New ListItem
        ite.Text = "any"
        DropDownList1.Items.Add(ite)
End Sub

C#

protected void DropDownList1_DataBound(object sender, EventArgs e)
{
    ListItem ite = new ListItem();
    ite.Text = "any";
    DropDownList1.Items.Add(ite);
}