ASP.NET - 如何为数据绑定下拉列表创建占位符值?

时间:2016-11-06 18:45:55

标签: c# html sql asp.net database

我正在尝试在下拉列表中包含占位符值。下拉列表应该是沃尔玛,凯马特等商店的列表。但是,我希望列表中的第一个值项目为“选择商店”。问题是我从数据库表中获取存储列表并将其绑定到下拉列表。所以现在,下拉列表显示:沃尔玛,凯马特,Hmart。我希望它显示:选择商店,沃尔玛,凯马特,Hmart。 注意:我使用的是ASP.NET C#。

HTML:

<asp:DropDownList ID="ddlStore" class="btn btn-primary dropdown-toggle" runat="server" AutoPostBack="true" Width="80%"     OnSelectedIndexChanged="ddlStore_SelectedIndexChanged">
</asp:DropDownList>

代码隐藏:

public void getStores()
{
    objCommand.CommandType = CommandType.StoredProcedure;
    objCommand.CommandText = "dbo.Store_Select";

    DataSet ds;
    ds = conn.GetDataSetUsingCmdObj(objCommand);
    ddlStore.DataSource = ds.Tables[0];

    if (ds.Tables[0].Rows.Count == 0)
    {
    /*No Store to display*/
    }
    else
    {
        foreach (DataRow current_row in ds.Tables[0].Rows)
        {
            ddlStore.DataTextField = "Store_Name";
            ddlStore.DataValueField = "Store_ID";
        }
    }
    ddlStore.DataBind();
 }

谢谢。

1 个答案:

答案 0 :(得分:2)

将数据库数据绑定到控件ddlStore.DataBind();后,只需使用

插入ListItem即可
ddlStore.Items.Insert(0, new ListItem("Select a store", ""));

完整方法:

public void getStores()
{
    objCommand.CommandType = CommandType.StoredProcedure;
    objCommand.CommandText = "dbo.Store_Select";

    DataSet ds;
    ds = conn.GetDataSetUsingCmdObj(objCommand);
    ddlStore.DataSource = ds.Tables[0];

    if (ds.Tables[0].Rows.Count == 0)
    {
    /*No Store to display*/
    }
    else
    {
        foreach (DataRow current_row in ds.Tables[0].Rows)
        {
            ddlStore.DataTextField = "Store_Name";
            ddlStore.DataValueField = "Store_ID";
        }
    }
    ddlStore.DataBind();
    ddlStore.Items.Insert(0, new ListItem("Select a store", ""));
 }