asp.net中的下拉列表值

asp.net中的下拉列表值,asp.net,drop-down-menu,Asp.net,Drop Down Menu,我想在下拉列表中添加一个无法选择的值,如标题。 我有一个月的下拉列表。第一项应为“选择月份”,不应选择此项。接下来是从一月到十二月。我该怎么做 这是我目前的代码 string selectmonth = "select * from tblmonth"; SqlCommand scmselect = new SqlCommand(selectmonth, scnbuboy); SqlDataReader sdrselect = scmselect.ExecuteReader(); drmon

我想在下拉列表中添加一个无法选择的值,如标题。 我有一个月的下拉列表。第一项应为“选择月份”,不应选择此项。接下来是从一月到十二月。我该怎么做

这是我目前的代码

string selectmonth = "select * from tblmonth";
SqlCommand scmselect = new SqlCommand(selectmonth, scnbuboy);

SqlDataReader sdrselect = scmselect.ExecuteReader();

drmonth.DataTextField = "month";
drmonth.DataValueField = "monthID";
drmonth.DataSource = sdrselect;

drmonth.DataBind();

可以添加空值,例如:

ddlmonths.Items.Insert(0, new ListItem("Select Month", ""))

只需添加一个验证,以防止选择空选项,如asp:RequiredFieldValidator。

假设您有一个名为DDLMorks的下拉列表:


简单地说,这是不可能的。因为DropdownList包含ListItem,默认情况下将选中它

但是,您可以使用ValidationControl:

<asp:RequiredFieldValidator InitialValue="-1" ID="Req_ID" Display="Dynamic" 
ValidationGroup="g1" runat="server" ControlToValidate="ControlID"
Text="*" ErrorMessage="ErrorMessage"></asp:RequiredFieldValidator>
你可以试试这个

your_ddl_id.Items.Insert(0,new ListItem("Select","");

如果你想那么努力的话,这些都是很好的答案。但是我的猜测是,您已经从一个数据绑定元素中获得了列表中所需的项目,并且只想添加到列表的顶部,嘿,伙计,选择一个!选项假设是这样的话

这是一个简单的答案。而且它总是有效的

按照计划完成数据绑定列表。 然后,在Visual Studio中,编辑下拉列表中的项目, 添加一个手动项目,让您选择一个项目选项, 使用VS2012中项目的属性窗口,将其选中。现在把窗户关上。 现在,转到Visual Studio中左下角的“属性”框,确保已选中下拉列表,并查找属性AppendDataBoundItems。 它将读为False,将其设置为True。 现在,您将获得一个包含所有数据项的下拉列表,前面是手动项中的Select an Item语句。如果可能的话,尝试给它一个默认值,这将消除您可能遇到的任何错误。默认值为零,因此如果零不是问题,那么就不要管它。如果零是问题,则用不会使代码崩溃的内容替换项中的默认零

停止这么辛苦的工作…这就是Visual Studio的用途。

VB代码:

Dim ListItem1 As New ListItem()
ListItem1.Text = "put anything here"
ListItem1.Value = "0"
drpTag.DataBind()
drpTag.Items.Insert(0, ListItem1)
视图:

试试这个

    <asp:DropDownList ID="ddList" runat="server">
    <asp:ListItem Value="">--Select Month--</asp:ListItem>
    <asp:ListItem Value="1">January</asp:ListItem>
    <asp:ListItem Value="2">Feburary</asp:ListItem>
    ...
    <asp:ListItem Value="12">December</asp:ListItem>
    </asp:DropDownList>

默认选中的listitem的值应为空,然后使用c将项目添加到asp.net中具有值的下拉列表中即可,只需添加以下代码即可,例如:

try
{
    SqlConnection conn = new SqlConnection(conStr);
    SqlCommand comm = conn.CreateCommand();
    comm = conn.CreateCommand();
    comm.CommandText = "SELECT title,gid from Groups";
    comm.CommandType = CommandType.Text;
    conn.Open();
    SqlDataReader dr = comm.ExecuteReader();
    while (dr.Read())
    {
       dropDownList.Items.Add(new 
       ListItem(dr[0].ToString(),dr[1].ToString()));
    }
}
catch (Exception e)
{
    lblText.Text = e.Message;
}
finally
{
  conn.Close();
}

我尝试过:string selectmonth=select*fromtblmonths;SqlCommand scmselect=新SQLCOMMANDSELECTMOUNT,scnbuboy;SqlDataReader sdrselect=scmselect.ExecuteReader;drmonth.DataTextField=月份;drmonth.DataValueField=monthID;drmonth.Items.Insert0,新建列表项选择一个月,-1;drmonth.DataSource=sdrselect;drmonth.DataBind;选择。关闭;但是只显示数据库中的数据,而不是选择monthfield。谢谢。终于明白了。我想我还得对下拉列表本身做点什么。
Dim ListItem1 As New ListItem()
ListItem1.Text = "put anything here"
ListItem1.Value = "0"
drpTag.DataBind()
drpTag.Items.Insert(0, ListItem1)
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator" ControlToValidate="drpTag" 
  ValueToCompare="0">
</asp:CompareValidator>
    <asp:DropDownList ID="ddList" runat="server">
    <asp:ListItem Value="">--Select Month--</asp:ListItem>
    <asp:ListItem Value="1">January</asp:ListItem>
    <asp:ListItem Value="2">Feburary</asp:ListItem>
    ...
    <asp:ListItem Value="12">December</asp:ListItem>
    </asp:DropDownList>
try
{
    SqlConnection conn = new SqlConnection(conStr);
    SqlCommand comm = conn.CreateCommand();
    comm = conn.CreateCommand();
    comm.CommandText = "SELECT title,gid from Groups";
    comm.CommandType = CommandType.Text;
    conn.Open();
    SqlDataReader dr = comm.ExecuteReader();
    while (dr.Read())
    {
       dropDownList.Items.Add(new 
       ListItem(dr[0].ToString(),dr[1].ToString()));
    }
}
catch (Exception e)
{
    lblText.Text = e.Message;
}
finally
{
  conn.Close();
}