使用DataSource C#时在下拉列表中添加空值

时间:2016-01-20 13:18:12

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

我正在尝试通过DropDownList创建过滤器。
他们正在使用数据源。
问题是 - 这些来源不包含空值,过滤器始终有效。我当然不需要它。我试图在DropDownList右侧添加ListItem,但它没有帮助。

以下是我的DropDownList之一。

<asp:DropDownList ID="ddl" runat="server" DataSourceID="sds"
     DataTextField="name" DataValueField="id">
</asp:DropDownList>                                
<asp:SqlDataSource ID="sds" runat="server" 
     ConnectionString="<%$ ConnectionStrings:conStr %>" 
     OnInit="sds_Init"></asp:SqlDataSource>>

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:5)

您可以在后面的代码中执行此操作:

ddl.Items.Add(new ListItem("--Select--", "-1"));

或者:

ddl.Items.Insert(0, new ListItem("--Select--", "-1"));

或者在.aspx上:

<asp:DropDownList ID="ddl" runat="server" DataSourceID="sds"
     DataTextField="name" DataValueField="id">
     <asp:ListItem Text="--Select--" Value ="-1"></asp:ListItem>
</asp:DropDownList>  

或者可能在您的SQL中:

SELECT "--Select--" AS [name], -1 as [id]
UNION
SELECT ...

答案 1 :(得分:1)

我这样做也是这样,试试一次

 AffiliatesDomain affiliateDomain = new AffiliatesDomain();
 List<usp_selectAffiliatesForMasterResult> objListAffiliate = new List<usp_selectAffiliatesForMasterResult>();
 objListAffiliate = affiliateDomain.SelctAffiliatesForMasterAgent();
 ddlAffiliate.DataSource = objListAffiliate;
 ddlAffiliate.DataTextField = "PartnerAffiliatCodeName";
 ddlAffiliate.DataValueField = "AffiliateId";
 ddlAffiliate.DataBind();
 ddlAffiliate.Items.Insert(0, new ListItem("--Select--", "0"));