2009-06-05 15 views
3

マイページビューに現在、コントローラからのコレクションにバインドされているドロップダウンリストがあります。これは、しかし、私は現在、リストなど私のコレクションではありませんDropDownListコントロールの一番上に項目を挿入したい、正常に動作している私は、「すべて」の第三の選択肢を追加したい以下の項目にASP.Net MVCバインドされたドロップダウンリストへの項目の追加

Open 
Closed 

を取得私はこのオプションをデータベースに追加したくありません。私はちょうどドロップダウンリストがバインドされたらこの新しい項目を追加するビューにいくつかのJavascriptを追加する必要があると思うのですが、Webformsでは、私はちょうどコントロールをバインドし、別の項目を挿入したが、これはMVCで可能ではないようだ。

おかげ

シンプル
+0

なぜ<%= Html.DropDownList( "ドロップダウン"、 "すべて")%>使用しませんか?なぜなら、サーバー側の値がnullまたは空の文字列であると思うからです。あなたは条件を取得します。 – Vikas

答えて

9

いいえSelectListItemsのリストとしてデータを作成し、コントローラに追加します。ビュー側で

var list = db.Table 
       .Select(t => new SelectListItem 
           { 
            Key = t.ID.ToString(), 
            Value = t.Name 
           }) 
       .ToList(); 
    list.Insert(0, new SelectListItem { Key = "-1", Value = "All" }); 

    ViewData["TableSelect"] = list; 

<%= Html.DropDownList("TableID", 
          (IEnumerable<SelectListItem>)ViewData["TableSelect"]) %> 
+0

同じ名前にビューデータが含まれている場合は、<%= Html.DropDownList( "TableSelect")%>を直接使用することもできます。 – Vikas

+0

最終的に彼はGavDが "すべて"をDBに入れないようにするためにサーバー側でチェックしなければなりません – Vikas

+0

リストを取得できません。挿入方法はありません – Gavin

0

あなたは、コントローラに望むようにあなたがそれを作ることができます。

ビューデータで渡します。

他のオプションはビューページに直接あります。

<%= Html.DropDownList("DropDown","all")%> 

しかし、あなたはオプションを1つだけ追加することができます。..

あなたは右、ウルデシベルで追加されたオプションを保存していないことを確認してください? これを保存する前に、実際のオプション値を確認してロジックを適用してください。

+0

これは値が空の文字列なので、私はそれがポストバックされるとは思わない。 "none"の代わりに "all"のような値が必要な場合は、サーバー側(またはJavascript)でリストを調整する必要があります。 – tvanfosson

関連する問題