3

私の ASP.NET ページでは、コード ビハインドでさまざまな項目/オプションを DropDownList に読み込みますが、SelectedIndex を割り当てて既定値を設定しません。DropDownList にフォーカスを設定したり、値を変更したりしたことがなくても、ポストバック SelectedIndex が 0 に設定されていることに気付きました。

コード ビハインドまたはマークアップで特に指定されていない場合、DropDownList を使用したポストバックで SelectedIndex にデフォルト値の 0 が使用されますか? はいの場合、これは選択リストの HTML 標準の一部ですか、それとも ASP.NET 用に実装されているだけですか?

4

2 に答える 2

5

SELECTこれは、HTMLコントロールの通常の動作です。

選択したプロパティを使用しない限り、常に最初の項目(インデックス0)から始まります。

多くの場合、特にユーザーにオプションを選択してもらいたいので、ASP.NETではこれは必要ありません。

したがって、私が行うことは、検証できる空白の項目を追加することです。

すなわち

<asp:DropDownList runat="server" DataSourceID="SomeDS" AppendDataBoundItems="true"> // Notice the last property
    <asp:ListItem Text="Please select an option" Value="" />
</asp:DropDownList>

このようにして、値が空白かどうかをチェックするバリデーターを設定して、ユーザーに選択を強制することができます。

于 2010-07-18T19:35:36.803 に答える
2

コード ビハインドからこれを行う方法を探している人は、このSO QuestionInsertで説明されているように、関数を使用してIndex0 を指定することで、そこに追加のリスト項目を追加できます。必ず電話をかけてから行ってくださいDataBind()

myDropDownList.DataSource = DataAccess.GetDropDownItems(); // Psuedo Code
myDropDownList.DataTextField = "Value";
myDropDownList.DataValueField = "Id";
myDropDownList.DataBind();

myDropDownList.Items.Insert(0, new ListItem("Please select", ""));
于 2013-08-21T20:03:29.593 に答える