在asp.net中下拉列表值

时间:2013-08-21 10:29:47

标签: asp.net drop-down-menu

我想在下拉列表中添加一个无法选择的值,例如标题。 例如:我有一个月的下拉列表。第一项应该是“选择月份”,不应选择此项。接下来是1月到12月。我怎么能这样做?

这是我目前的代码。

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

9 个答案:

答案 0 :(得分:13)

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

您甚至可以使用忽略此项的RequiredFieldValidator,将其视为未选中。

<asp:RequiredFieldValidator ID="ReqMonth" runat="server" ControlToValidate="DdlMonths"
    InitialValue="-1">
</asp:RequiredFieldValidator>

答案 1 :(得分:3)

您可以添加空值,例如:

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

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

答案 2 :(得分:1)

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

这是EASY Answer。 它总是有效......

  1. 按照您的计划进行数据绑定列表。
  2. 那么,在Visual Studio中,编辑下拉列表中的项目
  3. 添加一个手动项目,使其成为“选择项目”选项,
  4. 使用VS2012中项目的属性窗口,将其选中。现在关闭那个窗口。
  5. 现在,转到左下角的Visual Studio中的属性框(确保选中下拉列表),然后查找属性“AppendDataBoundItems”。
  6. 它将读为False,将其设置为True。
  7. 现在,您将获得一个包含所有数据项的下拉菜单,通过手册项中的“选择项目”语句进行预测。如果可能,尝试给它一个默认值,这将消除您可能遇到的任何错误。默认值为零,所以如果零不是问题,那么请不要管它,如果零是一个问题,请将项目中的默认零替换为不会使代码崩溃的内容。

    停止努力工作......这就是Visual Studio的用途。

答案 3 :(得分: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>

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

答案 4 :(得分:0)

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

ddlMonths.Items.Insert(0,new ListItem("Select a month","-1");

答案 5 :(得分:0)

以简单的方式,它是不可能的。由于DropdownList包含ListItem,因此默认情况下会选择

但是,您可以使用ValidationControl

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

答案 6 :(得分:0)

你可以试试这个

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

答案 7 :(得分: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>

答案 8 :(得分: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();
}