2011-06-30 5 views
2

DetailsViewにDropDownListコントロールを追加しました。これを、更新/挿入メソッドの「状態」パラメータにバインドしようとしています。DetailsViewのドロップダウンリスト

<InsertItemTemplate> 
<asp:DropDownList ID="States" runat="server" SelectedValue='<%# Bind("State") %>'> 
<asp:ListItem Value="NY">New York</asp:ListItem> 
.... 
</asp:DropDownList> 
</InsertItemTemplate> 

私はDropDownListに50の状態を設定しているので、どのテーブルにもバインドされず、静的なアイテムです。編集時に状態を選択できるようにしたいのですが、編集を押すと、ストアドプロシージャを実行して、@Stateの引数としてDropDownListの値を編集して取得する必要があります。

は残念ながら、私はこのエラーを取得する:

'States' has a SelectedValue which is invalid because it does not exist in the 
list of items. 
Parameter name: value 

私は問題を研究したが、いくつかの記事ではなく、「バインド」の「評価」を使用したり、いくつかのnull値を追加することを示唆し、それは私の問題を解決しませんでした。あなたは私がこのエラーを取り除く方法についてどのようなアイデアや提案をしていますか?

+0

'私はedit'があなたの代わりに' EditTemplate'を見てすべきではないヒット? –

+0

はい、あなたがEditTemplateを記入した後、更新ボタンをクリックすると更新されるはずです。 –

答えて

2

ListItemが静的(つまり、マークアップで定義されている)の場合、投稿する必要があると思います。 は、リストアイテムの正しい構文は

<asp:ListItem Value="value" Text="displayText"></asp:ListItem> 
+0

OPを1つのリスト項目で更新しました。他のすべての項目は同じ構造です。ちょうど異なるテキスト。私はフォーマットも正しいと信じていますよね? –

+0

データソースに、「状態」値がListItemsにリストされていないレジスタがあるかどうかを確認します。 – KevinCampusano

0

、データベース内のテーブル内の一部の値が項目に、あなたのテーブルのエントリそれバインド

0

をチェックvalue..soあなたのListItemと一致しない場合、このエラーがターンアップで覚えておいてくださいテンプレート値eg

次に、あなたが持つことができます。

InsertItemTemplate> 
<asp:DropDownList ID="States" runat="server" SelectedValue='<%# Bind("State") %>'> 
<asp:ListItem Value="NY">New York</asp:ListItem> 
.... 
</asp:DropDownList> 
</InsertItemTemplate> 
関連する問題