3

ASP.Net 4.0 の次のコードで、ドロップダウン リストがエラーをスローしないという問題があります。

ドロップダウン リストは最初は空です。問題のページは、Page_Load の下の行以外にコードを含まない単純なテスト ページです。

ddlTest.Items.Add(new ListItem("test","test"));
ddlTest.SelectedValue = "Fail";

ページをロードすると、DDL は (予想どおり) 唯一の項目として「テスト」を表示し、エラーはスローされません。「アイテム「失敗」は存在しません」のようなエラーがスローされると思いました

if (!IsPostBack) ブロックの内側と外側の両方でコードをテストしました。結果は同じです。

これは理にかなっていますか?これがエラーをスローしない理由がわかりません。どんな説明でも大歓迎です。

ありがとう。

4

1 に答える 1

0

ddlTest にアイテムがない場合にのみ例外がスローされます。それ以外の場合は、値が見つからないだけです。

アイテムがリストに存在するかどうかを確認しようとしている場合は、いつでも最初にこれを行うことができます。

if (ddlTest.Items.FindByValue("Fail") != null)
  ddlTest.SelectedValue = "Fail";
else
  //item doesn't exist, do something meaningful here
于 2012-09-06T16:45:13.490 に答える