web-dev-qa-db-ja.com

asp.netのドロップダウンリスト値

タイトルなど、選択できないドロップダウンリストに値を追加したい。例:1か月のドロップダウンリストがあります。最初の項目は「選択月」で、これは選択しないでください。そして次は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();
6
wormwood
<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>
15
Tim Schmelter

次のような空の値を追加できます。

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

そして、asp:RequiredFieldValidatorなどの空のオプションが選択されないように検証を追加します。

3
7alhashmi

これを試すことができます

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

あなたが一生懸命働きたいなら、これらはすべて素晴らしい答えです。しかし、私の推測では、データバインドされた要素からのリストに必要なアイテムが既にあり、そのリストの一番上に「ちょっと、おい-1つを選んでください!」オプション。そうだと仮定すると...

これが簡単な回答です。 そしてそれは常に動作します...

  1. 計画どおりにデータバインドリストを作成します。
  2. 次に、Visual Studioでドロップダウンのアイテムを編集し、
  3. 1つのマニュアル項目を追加して、「Select an Item」の選択、
  4. VS2012のアイテムのプロパティウィンドウを使用して、選択されていることを確認します。そのウィンドウを閉じます。
  5. 次に、左下のVisual Studioのプロパティボックスに移動し(ドロップダウンが選択されていることを確認してください)、プロパティ "AppendDataBoundItems"を探します。
  6. Falseと表示され、これをTrueに設定します。

これで、手動アイテムで作成された「アイテムを選択」ステートメントに先行して、すべてのデータアイテムを含むドロップダウンが取得されます。可能であればデフォルト値を指定してみてください。これにより、発生する可能性のあるエラーがすべてなくなります。デフォルトはゼロなので、ゼロが問題でない場合はそのままにして、ゼロIS問題がある場合は、アイテムのデフォルトのゼロをコードをクラッシュさせないものに置き換えます。

そして一生懸命働くのをやめる...それこそがVisual Studioの目的です。

1
Todd R. Hill

これを試して

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

デフォルトで選択されているリストアイテムの値は空である必要があり、その後は正常に機能します

1
Asim

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

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

ddlMonthsというドロップダウンがあるとします:

ddlMonths.Items.Insert(0,new ListItem("Select a month","-1");
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
Arshad