2013-08-21 2 views
3

Я хочу добавить значение в раскрывающийся список, который нельзя выбрать, например название. Ex: У меня есть раскрывающийся список в течение месяца. Самый первый элемент должен быть «select month», который не следует выбирать. А дальше - с января по декабрь. Как я могу это сделать?выпадающее значение списка в asp.net

И это мой текущий код.

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

Что вы пытаетесь? –

ответ

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

Спасибо. Наконец, понял. Я думал, что мне еще нужно что-то сделать в выпадающем списке. – wormwood

2

Вы можете добавить пустое значение, например:

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

И просто добавить проверку, чтобы предотвратить пустой вариант они выбрали такие как asp:RequiredFieldValidator.

0

Скажет у вас есть падение вниз под названием ddlMonths:

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

Я пробовал: string selectmonth = "select * from tblmonths"; SqlCommand scmselect = new SqlCommand (selectmonth, scnbuboy); SqlDataReader sdrselect = scmselect.ExecuteReader(); drmonth.DataTextField = "month"; drmonth.DataValueField = "monthID"; drmonth.Items.Insert (0, новый ListItem ("select a month", "-1")); drmonth.DataSource = sdrselect; drmonth.DataBind(); sdrselect.Close(); Но появляются только данные из базы данных, а не поле «выбрать месяц». – wormwood

0

Простым способом, его невозможно. Поскольку DropdownList содержат ListItem и он будет выбран по умолчанию

Но, вы можете использовать ValidationControl для этого:

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

Вы можете попробовать это

ddlMonths.Items.Insert (0, новый ListItem («Выбрать», «»)

1

Это ВСЕ отличные ответы, если вы хотите работать так сильно. Но я предполагаю, что у вас уже есть элементы, которые вы хотите для списка, исходящего из элемента данных, и только хочу добавить в верхнюю часть этого списка вариант «Эй, чувак - выберите один!». Предположим, что это так ...

Вот ЛЕГКИЙ ОТВЕТ. И ВСЕГДА работает ...

  1. ли ваш список DataBound так же, как вы планировали.
  2. ТОГДА, в Visual Studio, редактировать элементы на раскрывающемся меню
  3. Добавить ОДИН РУЧНОЙ ITEM, убедитесь, что ваш «Выберите пункт» выбор,
  4. Используя окно свойств для элемента в VS2012, проверьте его как выбрано. Теперь закройте это окно.
  5. Теперь перейдите в окно свойств в Visual Studio в нижней левой руке (убедитесь, что выпадающий список выбран) и найдите свойство «AppendDataBoundItems».
  6. Он будет читать False, установите для этого значение Истина.

Теперь вы получите Drop Down со всеми вашими элементами данных в нем, ПРЕДПОЛАГАЕМОГО в вашем заявлении «Выбрать товар», сделанного в ручном элементе. По возможности попробуйте дать ему значение по умолчанию, это устранит любые ошибки, с которыми вы можете столкнуться. Значение по умолчанию - Zero, поэтому, если нуль не является проблемой, оставьте его в покое, если нуль - проблема, замените нулевой параметр по умолчанию на то, что НЕ сбой вашего кода.

И перестать работать так тяжело ... это то, что Visual Studio для.

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

попробовать это один

<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 с, то он работает отлично

0

для добавления элементов выпадающего списка со значением в asp.net с помощью C# просто добавьте ниже коды, например:

 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(); 
     } 
Смежные вопросы