2016-09-29 3 views
0

私は<optgroup>要素を試しており、いくつかの項目が同じoptgroupに属しているようにしようとしています。選択リストアイテムが同じSelectListGroupに属していることを確認するにはどうすればよいですか?

マイコード:

public async Task<ActionResult> GetStatsView() 
    { 
     var users = await _administrationServiceAPI.GetPersons(); 
     var tanks = await _administrationServiceAPI.GetTanks(); 


     var list = new List<SelectListItem>(); 

     foreach (var u in users.Payload) 
     { 
      SelectListItem item = new SelectListItem {Text = u.Name, Value = u.Id.ToString(), Group = new SelectListGroup {Name = "Users"} }; 
      list.Add(item); 
     } 

     foreach (var u in tanks.Payload) 
     { 
      SelectListItem item = new SelectListItem { Text = u.Name, Value = u.Id.ToString(), Group = new SelectListGroup { Name = "Tanks" } }; 
      list.Add(item); 
     } 

     @ViewBag.MyList = list; 

     return View("StatsView"); 
    } 

ビュー:

@Html.DropDownList("MyList") 

結果:

enter image description here

Desiered結果は次のとおりです。

ユーザー

ユーザー名

ユーザー名

ユーザー名

戦車

タンク

タンク

タンク

どうすればいいですか?

答えて

2

動作させるには、SelectListGroupを再利用する必要があります。このように使用してください:

var usersGroup = new SelectListGroup {Name = "Users"}; 
    foreach (var u in users.Payload) 
    { 
     SelectListItem item = new SelectListItem {Text = u.Name, Value = u.Id.ToString(), Group = usersGroup }; 
     list.Add(item); 
    } 

もちろん、タンクの場合も同様です。

名前が同じでも問題ありません。使用するインスタンスは、さまざまなアイテムで同じである必要があります。optgroupにグループ化してください。

+0

私は今自分自身を笑っています...ありがとう! – ThunD3eR

+0

最高にも起こります。少なくともあなたはそれから笑いを持っています:) – kiziu

関連する問題