vervolgkeuzelijstwaarde in asp.net

Ik wil een waarde toevoegen aan de vervolgkeuzelijst die niet kan worden geselecteerd, zoals een titel.
Voorbeeld: ik heb een vervolgkeuzelijst voor een maand. Het allereerste item moet “selecteer maand” zijn, dit mag niet worden geselecteerd. En de volgende is van januari tot december. Hoe kan ik dat doen?

En dit is mijn huidige code.

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

Antwoord 1, autoriteit 100%

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

U kunt zelfs een RequiredFieldValidatorgebruiken die dit item negeert, het beschouwt het als niet geselecteerd.

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

Antwoord 2, autoriteit 16%

U kunt een lege waarde toevoegen, zoals:

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

en voeg gewoon een validatie toe om te voorkomen dat u de lege optie bent, zoals asp:RequiredFieldValidator.


Antwoord 3, Autoriteit 5%

Dit zijn allemaal geweldige antwoorden als je dat hard wilt werken. Maar mijn gok is dat u al de gewenste items hebt voor de lijst die uit een databound-element komt en alleen willen toevoegen aan de bovenkant van die lijst de “HEY, DUDE – Kies er een!” optie. Ervan uitgaande dat dat het geval is …

Hier is het gemakkelijke antwoord. en het werkt altijd …

  1. Doe je databound lijst net als je gepland.
  2. Bewerk dan in Visual Studio de items op vervolgkeuzelijst,
  3. Voeg een handmatig item toe, merk dat uw “een item ” keuze,
  4. selecteren

  5. Controleer het gebruik van het venster Eigenschappen voor het item in VS2012, zoals geselecteerd. Sluit dat venster.
  6. Ga nu naar het vak Eigenschappen in Visual Studio aan de linkerbenedenhoek (zorg ervoor dat de vervolgkeuzelijst is geselecteerd) en zoek naar de eigenschap “Appenddatabounditems”.
  7. Het zal false lezen, dit instellen op true.

Nu ontvang u een vervolgkeuzelijst met al uw gegevensitems erin, voorafgegaan door uw verklaring “Selecteer een artikel” in het handmatige item. Probeer het indien mogelijk een standaardwaarde te geven, dit zal eventuele fouten elimineren die u kunt tegenkomen. De standaard is nul, dus als nul geen probleem is, laat het dan alleen over, als nul een probleem is, vervang dan de standaard nul in het item met iets dat uw code niet zal crashen.

en stop met werken zo hard … dat is waar visuele studio voor is.


Antwoord 4, Autoriteit 5%

Probeer deze

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

Waarde moet leeg zijn voor het standaard geselecteerde lijstitem, dan werkt het prima


Antwoord 5, autoriteit 5%

U kunt dit proberen

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

Antwoord 6

Stel dat je een vervolgkeuzelijst hebt met de naam ddlMonths:

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

Antwoord 7

Op een eenvoudige manier is het niet mogelijk. Omdat DropdownListListItembevat en standaard wordt geselecteerd

Maar daarvoor kun je ValidationControlgebruiken:

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

Antwoord 8

Als u items wilt toevoegen aan de vervolgkeuzelijst met waarde in asp.net met behulp van c#, hoeft u alleen onderstaande codes toe te voegen, bijvoorbeeld:

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

Antwoord 9

VB-code:

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

Bekijken:

<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator" ControlToValidate="drpTag" 
  ValueToCompare="0">
</asp:CompareValidator>

Other episodes