2017-03-05 18 views
0

これで、ユーザーはドロップダウン値の1つを選択する必要があります。 現在の値が空の場合、ドロップダウンで選択した値を既に「レート1」に設定するにはどうすればよいですか? (場合モーダル負荷それがどのようである)ドロップダウンからデフォルト値を選択する方法

、最終的に、 に@class =「フォームコントロール」の状態を設定:ときに選択有するモーダル負荷 @class =「フォームコントロールを編集」値?

foreach (Lookup lookupItem in (new LookupFill("BillingRates", num)).LookupItems) 
     { 
      SelectListItem selectListItem3 = new SelectListItem() 
      { 
       Text = lookupItem.Text, 
       Value = lookupItem.Value, 
       Disabled = lookupItem.Disabled, 
       Selected = lookupItem.Selected 
      }; 
      selectListItems5.Add(selectListItem3); 
     } 
     SelectListItem selectListItem4 = new SelectListItem() 
     { 
      Text = "", 
      Value = "", 
      Disabled = false 
     }; 

は、その後、私はこれを持っている:私もドロップダウンのためのBillingRatesをルックアップするために、このforeachのを使用

case "BillingRates": 
      { 
       strArrays = new string[] { "Rate1", "Rate2", "Rate3", "Rate4" }; 
       for (i = 0; i < (int)strArrays.Length; i++) 
       { 
        string str4 = strArrays[i]; 
        lookups.Add(new Lookup() 
        { 
         Text = str4, 
         Value = str4, 
         TenantId = currentTenantId, 
         Selected = false, 
         Disabled = false, 
         Group = null, 
         AssociatedClass = string.Empty 
        }); 
       } 
       break; 
      } 

私はダウン私のドロップには4回の料金でいっぱいのルックアップとしてこれを持っています変数のcshtmlファイル:

var selectedBillingRate = string.Empty; 
var BillingRates = ViewData["BillingRates"] as IEnumerable<SelectListItem>; 
foreach (var item in BillingRates) 
{ 
    if (item.Value == Model.Invoice.BillingRate) { selectedBillingRate = item.Value; break; } 
} 
var BillingRateSelect = new SelectList(BillingRates, "Value", "Text"); 


var selectedBillingRate = '@Html.Raw(selectedBillingRate)'; 
     $('#BillingRate').val(selectedBillingRate); 

最後に、私はこれを私のDropDownListとして持っています:

@Html.DropDownList("BillingRate", BillingRateSelect, new { id = "BillingRate", required = "required", @class = "form-control" + (!string.IsNullOrEmpty(Model.Invoice.BillingRate) || !string.IsNullOrEmpty(selectedBillingRate) ? " edited" : "") }) 
+0

'DropDownList()'(および優先する 'DropDownListFor()')メソッドは、あなたのプロパティの値にバインドします。モデルをビューに渡す前に、GETメソッドで 'BillingRate'の値を設定する必要があります(モデルプロパティにバインドする際に' SelectListItem'の 'Selected'プロパティを設定することは無視されます)。 –

+0

@StephenMueckeあなたはどこでそれをするのが最善だとお勧めしますか?私はこのコードを継承しました.GETメソッドで 'BillingRate'の値を設定するために、どこにあるのか、それとも正確に何をすべきか分かりません。再度、感謝します! – zberg007

+0

あなたはあなたのモデルやGETメソッドを表示していませんが、 'var model = ...;'(あなたがモデルを設定しているコード)を初期化すると仮定すると、 'if(model.BillingRate = = null){model.BillingRate = someValue; };ビューを返す(モデル); ' –

答えて

0

私は単純に上からこれを交換することになった。これで var selectedBillingRate = string.Empty;var selectedBillingRate = "Rate1"; 、要求されるように動作するようです。

これはおそらく達成するための最良の方法ではないとわかりました。しかし、@ StephenMuekeのやり方がこれを行うための最良の方法ですが、あらかじめ希望通りにBillingRateの値を設定する正しいGETメソッドが見つかりませんでした。私の悪い、まだ学ぶ。 @StephenMueckeに感謝してくれてありがとう。

関連する問題