2011-07-12 11 views
0

thisを読んで、RequiredFieldValidatorInitialValueプロパティに妥当性検査の問題を絞り込むのに役立ちました。ドロップダウンリストのRequiredFieldValidatorがnullオブジェクトのIntialValueを受け入れない

私のドロップダウンリストは、このようなコードで埋められたオブジェクトのリストです。

brands.Insert(0, Brand.Empty) 

cbBrand.DataValueField = "ID"; 
cbBrand.DataTextField = "Name"; 
cbBrand.DataSource = new BindingList<Brand>(brands); 
cbBrand.DataBind(); 

ここで、Brand.Emptyはnullオブジェクト型です。

ここでは、私が去って来るのは、IntialValueにヌル値を受け入れることです。たとえば、InitialValue=""は、リスト内の空のオブジェクトを認識できません。

誰でも私にこのことに対する修正を指示できますか?

答えて

0

うわー。私は、この質問を投稿する前に、このサイトの以前の回答を非常に徹底的に検索したと思ったが、私はthisが欠けていた!!

答えは<asp:DropDownList>AppendDataBoundItems=trueというプロパティを設定してから、dropDownListタグとBAMの間に<asp:ListItem Text="" Value="" />を追加します。コードビハインドに挿入されたnullオブジェクトを必要としない値をリストに挿入することができます(リストの先頭に2つの空白がないように削除する必要があります)。

ここでの利点は、コードビハインドのリストがオブジェクト型<Brand>にバインドされていることですが、クライアント側で空の文字列を追加すると、クライアント側の検証に問題ありません。

これは、この問題に苦労している人に役立ちます。

1

空の文字列はnull値と同じではありません。代わりにあなたのデータソースにNULL値を追加するの、直接のようなドロップダウンに追加します。

バリデータ初期値と一致した「」の値を使用してHTMLのselect要素にオプションを追加します
cbBrand.Insert(0, new ListItem("", "Select an item")); 

+0

Kenさん、ありがとうございます。リストがロードされている間にカスタム文字列を挿入する際の問題は、リスト 'cbBrand'がタイプ' 'を期待していることです。私はこの問題を回避する方法を見つけました(恥ずかしながら、別の投稿であるSO:S)。再度、感謝します! – CodeMonkey

関連する問題