2016-11-06 51 views
0

我想在下拉列表中有一个占位符值。下拉列表应该是Walmart,Kmart等商店的列表。但是,我想要列表中的第一个值项目说“选择一个商店”。问题是我从数据库表中获取商店列表并将其绑定到下拉列表。所以现在,下拉列表显示:Walmart,Kmart,Hmart。我希望它显示:选择一家商店,沃尔玛,凯马特,Hmart。 注意:我正在使用ASP.NET C#。ASP.NET - 如何为数据绑定的下拉列表设置占位符值?

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(); 
} 

谢谢。

回答

2

后的DB数据绑定控件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", "")); 
} 
+0

非常感谢你。那正是我所期待的。 – user3470441

+0

@ user3470441很高兴工作,请不要忘记标记帖子作为答案。 – Seany84

相关问题