为下拉式菜单(DropDownList)添加第一个选项

时间:2022-09-22 17:34:56

很多方法可以为为下拉式菜单(DropDownList)添加第一个选项,下面是Insus.NET小结了几个方法,仅供参考:

Html code:

<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="DropDownList1" runat="server">            
        </asp:DropDownList>
    </div>
    </form>
</body>

数据源与绑定:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Data_Binding();
        }
    }

private void Data_Binding()
    {
        this.DropDownList1.DataSource = Site();
        this.DropDownList1.DataTextField = "key";
        this.DropDownList1.DataValueField = "value";
        this.DropDownList1.DataBind();
    }

private Dictionary<string, string> Site()
    {
        Dictionary<string, string> site = new Dictionary<string, string>();
        site.Add("Insus.NET cnblogs", "http://insus.cnblogs.com");
        site.Add("Microsoft", "http://www.microsoft.com");
        site.Add("Google", "http://www.google.com");
        return site;
    }

以下所有方法,均以以上html或code作变动。

第一种,修改Html Code,把DropDownList属性AppendDataBoundItems的值设为true,然后直接添加一个item:<asp:ListItem Text="--选择--" Value=""></asp:ListItem> 在DropDownList内。

<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true">    
        <asp:ListItem Text="--选择--" Value=""></asp:ListItem>        
        </asp:DropDownList>

第二种方法,Html Code无需更改,

<asp:DropDownList ID="DropDownList1" runat="server" >                  
        </asp:DropDownList>

修改Data_Binding()方法,如下:

private void Data_Binding()
    {
        this.DropDownList1.DataSource = Site();
        this.DropDownList1.DataTextField = "key";
        this.DropDownList1.DataValueField = "value";
        this.DropDownList1.DataBind();

//添加下面代码:
        DropDownList1.Items.Insert(0, new ListItem( "--选择--",""));
         
    }

第三种方法:

Html改为如下,设置AppendDataBoundItems属性与及实现OnDataBound事件:

<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true" OnDataBound="DropDownList1_DataBound" >                  
        </asp:DropDownList>

cs code:

protected void DropDownList1_DataBound(object sender, EventArgs e)
    {
        DropDownList ddl = (DropDownList)sender;
        ddl.Items.Insert(0, new ListItem("--选择--", "0"));
    }