から私は、グリッド型形態は、ダウンYoungFFsのリストがあるでしょう、ダイナミックでYoungFFsの数とYFFCompetenciesダイナミックグリッドのasp.net MVC
の数に対応するための変更のthatsにしようとしていますグリッド内の対応するボックスにチェックインする機能を備えています。
私はYoungFFの動的リストを生成できますが、動的列の生成の開始位置はわかりません。
のviewmodels:
public class AddTrainingViewModel
{
public int DrillId { get; set; }
public string DrillDate { get; set; }
public YoungFFDrillTrainingListViewModel[] YoungFFDrillTrainingListViewModels { get; set; }
}
public class YoungFFDrillTrainingListViewModel
{
public int YoungFFId { get; set; }
public string Name { get; set; }
}
コントローラー:
public ViewResult AddTraining(int drillId)
{
//Find Event
var selectedDrill = db.Drills.FirstOrDefault(t => t.DrillId == drillId);
//YoungFF List
DateTime today = DateTime.Today;
var youngffs = from s in db.YoungFFs
where s.BranchId == selectedDrill.DrillBranchId && s.Left == null
orderby s.LastName
select new
{
FirstName = s.FirstName,
LastName = s.LastName,
YoungFFId = s.YoungFFId,
};
//Comptency List
var competencies = from s in db.YFFCompetencys
where s.Dormant == false
orderby s.YFFCompetencyName
select new
{
YFFCompetencyId = s.YFFCompetencyId,
YFFCompetencyName = s.YFFCompetencyName,
};
AddTrainingViewModel viewModel = new AddTrainingViewModel
{
DrillId = selectedDrill.DrillId,
DrillDate = selectedDrill.DrillDate.ToLongDateString(),
YoungFFDrillTrainingListViewModels =
youngffs.Select(
x => new YoungFFDrillTrainingListViewModel
{
YoungFFId = x.YoungFFId,
Name = x.FirstName + " " + x.LastName,
}).ToArray(),
};
return View(viewModel);
}
ビュー、
@model YFA.ViewModels.AddTrainingViewModel
@{
ViewBag.Title = "Add Training for Drill";
}
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.HiddenFor(model => model.DrillId)
<h3>Instructors</h3>
<div class="col-md-offset-1">
@for (int i = 0; i < Model.YoungFFDrillTrainingListViewModels.Count(); i++)
{
<div class="form-group">
<div class="row">
@Html.HiddenFor(x => Model.YoungFFDrillTrainingListViewModels[i].YoungFFId)
<div class="col-md-2">
@Html.LabelFor(x => Model.YoungFFDrillTrainingListViewModels[i].Name, Model.YoungFFDrillTrainingListViewModels[i].Name)
</div>
</div>
</div>
}
</div>
<div class="form-group">
<div class="col-md-offset-1 col-md-10">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to Drill List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
モデルを表示すると役立ちます。そして、あなたは[この質問]の画像のようなテーブルを生成するために探しています(http://stackoverflow.com/questions/29626914/how-to-represent-a-month-of-checkboxes-in-an-mvc-モデル/ 29627829#29627829)? –
@StephenMuecke Iveはビューモデルを追加しました。同じレイアウトです。 –
この質問の答えに似たビューモデルが必要です。 'WeekVM'はテーブル行(あなたの場合は' YFFCompetencies'のコレクション)を表し、 'ScheduleViewModel'はテーブルを表します(あなたの場合は' YoungFFs ') –