タイトルなど、選択できないドロップダウンリストに値を追加したい。例: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();
<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>
次のような空の値を追加できます。
ddlmonths.Items.Insert(0, new ListItem("Select Month", ""))
そして、asp:RequiredFieldValidator
などの空のオプションが選択されないように検証を追加します。
これを試すことができます
your_ddl_id.Items.Insert(0,new ListItem("Select","");
あなたが一生懸命働きたいなら、これらはすべて素晴らしい答えです。しかし、私の推測では、データバインドされた要素からのリストに必要なアイテムが既にあり、そのリストの一番上に「ちょっと、おい-1つを選んでください!」オプション。そうだと仮定すると...
これが簡単な回答です。 そしてそれは常に動作します...
これで、手動アイテムで作成された「アイテムを選択」ステートメントに先行して、すべてのデータアイテムを含むドロップダウンが取得されます。可能であればデフォルト値を指定してみてください。これにより、発生する可能性のあるエラーがすべてなくなります。デフォルトはゼロなので、ゼロが問題でない場合はそのままにして、ゼロIS問題がある場合は、アイテムのデフォルトのゼロをコードをクラッシュさせないものに置き換えます。
そして一生懸命働くのをやめる...それこそがVisual Studioの目的です。
これを試して
<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>
デフォルトで選択されているリストアイテムの値は空である必要があり、その後は正常に機能します
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>
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();
}
ddlMonths
というドロップダウンがあるとします:
ddlMonths.Items.Insert(0,new ListItem("Select a month","-1");
簡単な方法で、それは不可能です。 DropdownList
にはListItem
が含まれており、デフォルトで選択されるため
ただし、そのためにValidationControl
を使用できます。
<asp:RequiredFieldValidator InitialValue="-1" ID="Req_ID" Display="Dynamic"
ValidationGroup="g1" runat="server" ControlToValidate="ControlID"
Text="*" ErrorMessage="ErrorMessage"></asp:RequiredFieldValidator>