をグループ化し維持されませんレコードを作成/編集するときにユーザーが最初に選択した値を保持する必要があるからです。編集ビューDDLは、私がこれを持って私の編集アクションで
ClassName.lstItems()
public static List<SelectListItem> lstItems()
{
List<SelectListItem> lstAllItems = new List<SelectListItem>();
using (var context = new ConnectionString())
{
List<Table1> lstTable1Items =
context.Table1.Where(x => x.deleted == false).ToList();
var groups =
lstTable1Items .OrderBy(x => x.Table2.Property1).GroupBy(x => x.Table2.Property1);
foreach (var group in groups)
{
var slg = new SelectListGroup() {Name = group.Key};
foreach (Table1 table1Item in group)
{
SelectListItem item = new SelectListItem() {Text = table1Item .PropertyText, Value = table1Item .ID.ToString(), Group = slg};
lstAllItems.Add(item);
}
}
}
return lstAllItems;
}
はもちろん、私はグループ化されたドロップダウンリストが欲しいです。しかし、私の編集アクションでは、グループ化されていません。ページの読み込み時に元の値を選択値として使用しているときに、どのようにしてドロップダウンリストをグループ化したままにしますか?
レイザー
<div class="form-group">
@Html.LabelFor(model => model.itemID, htmlAttributes: new { @class = "control-label col-md-4" })
<div class="col-md-8">
@Html.DropDownList("DropDownList2", null, "Select Item", htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.itemID, "", new { @class = "text-danger" })
</div>
</div>
UPDATE
public class TestClass
{
private ConnectionString context;
public TestClass()
{
context = new ConnectionString();
}
public IEnumerable<SelectListItem> GetListItems()
{
TestClass className = new TestClass();
// assumes `context` is a field on your class,
// set in the contructor, after being injected
return className.context.Table1
.Where(x => x.deleted == false)
.GroupBy(x => x.Table2.Property1)
.Select(x => {
var group = new SelectListGroup { Name = x.Key };
return x.Select(i => new SelectListItem
{
Text = i.PropertyText,
Value = i.ID.ToString(),
Group = group
});
})
.SelectMany(x => x);
}
}
に型付けされていますか? –
@KD ['SelectListItem'](https://msdn.microsoft.com/en-us/library/system.web.mvc.selectlistitem(v = vs.118).aspx)には、「グループ」というプロパティがあります。グループ内で各選択リスト項目をグループ化することができます。ドロップダウンリストでは、グループ名で各選択を分類することができます –
編集アクションで選択リストを入力しながらグループを指定することは可能でしょうか? –