9

我想向下拉列表中添加一个无法选择的值,例如标题。例如:我有一个月的下拉列表。第一项应该是“选择月份”,这不应该被选中。接下来是从一月到十二月。我怎样才能做到这一点?

这是我当前的代码。

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

9 回答 9

20
<asp:DropDownList ID="DdlMonths" runat="server">
    <asp:ListItem Enabled="true" Text="Select Month" Value="-1"></asp:ListItem>
    <asp:ListItem Text="January" Value="1"></asp:ListItem>
    <asp:ListItem Text="February" Value="2"></asp:ListItem>
    ....
    <asp:ListItem Text="December" Value="12"></asp:ListItem>
</asp:DropDownList>

你甚至可以使用RequiredFieldValidatorwhich ignore this item,它认为它是未选中的。

<asp:RequiredFieldValidator ID="ReqMonth" runat="server" ControlToValidate="DdlMonths"
    InitialValue="-1">
</asp:RequiredFieldValidator>
于 2013-08-21T10:35:56.253 回答
3

您可以添加一个空值,例如:

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

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

于 2013-08-21T10:34:51.037 回答
1

你可以试试这个

your_ddl_id.Items.Insert(0,new ListItem("Select","");
于 2013-08-21T11:06:26.167 回答
1

如果您想努力工作,这些都是很好的答案。但我的猜测是,您已经拥有来自数据绑定元素的列表所需的项目,并且只想在该列表的顶部添加“嘿,伙计 - 选择一个!” 选项。假设是这种情况...

这是简单的答案。 它总是有效的......

  1. 像你计划的那样做你的数据绑定列表。
  2. 然后,在 Visual Studio 中,编辑下拉菜单中的项目,
  3. 添加一个手动项目,使其成为您的“选择项目”选择,
  4. 使用 VS2012 中项目的属性窗口,将其选中。现在关闭那个窗口。
  5. 现在,转到左下角 Visual Studio 中的属性框(确保选择了下拉菜单),然后查找属性“AppendDataBoundItems”。
  6. 它将读取为 False,将其设置为 True。

现在,您将获得一个包含所有数据项的下拉菜单,前面是您在手动项目中所做的“选择一个项目”语句。如果可能,尝试给它一个默认值,这将消除您可能遇到的任何错误。默认值为零,因此如果零不是问题,则不要理会它,如果零是问题,请将项目中的默认零替换为不会导致代码崩溃的内容。

别再这么努力了……这就是 Visual Studio 的用途。

于 2013-11-11T16:41:56.217 回答
1

试试这个

    <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>

默认选择的列表项的值应该为空,然后它工作正常

于 2015-05-15T09:47:03.443 回答
0

假设您有一个下拉菜单ddlMonths

ddlMonths.Items.Insert(0,new ListItem("Select a month","-1");
于 2013-08-21T10:35:42.077 回答
0

简单来说,这是不可能的。因为DropdownList包含ListItem,默认会被选中

但是,您可以使用ValidationControl

<asp:RequiredFieldValidator InitialValue="-1" ID="Req_ID" Display="Dynamic" 
ValidationGroup="g1" runat="server" ControlToValidate="ControlID"
Text="*" ErrorMessage="ErrorMessage"></asp:RequiredFieldValidator>
于 2013-08-21T10:37:01.313 回答
0

VB代码:

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>
于 2015-02-13T20:27:28.983 回答
0

要使用 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();
}
于 2017-08-02T09:00:59.243 回答