Я пытаюсь создать простую страницу отчетов со статическим количеством раскрывающихся списков, содержащих названия доступных отчетов, и добавить их в коллекцию отчетов для создания отчета сравнения.
Вот моя ViewModel
public class DealSummaryComparisonViewModel
{
public ICollection<DealSummary> AvailableDealSummaries { get; set; }
public ICollection<int> SelectedDealSummaries { get; set; }
}
и вот мой взгляд
@model FRSDashboard.Web.Models.DealSummaryComparisonViewModel
@{
ViewBag.Title = "FRS Dashboard :: Deal Summary Comparison Report";
var dealSummaryList = new SelectList(Model.AvailableDealSummaries,
"DealSummaryId", "FileName");
}
<h2>Deal Summary Comparison Report</h2>
<p>Please select at least two files to compare:</p>
@using (Html.BeginForm("DealSummaryComparison", "Reporting", FormMethod.Post)) {
for (int i = 0; i <= 4; i++) {
<div>File @i+1: @Html.DropDownListFor(m => m.SelectedDealSummaries,
dealSummaryList)</div>
}
<div><input type="submit" name="download" id="download" value="Download To Excel" /></div>
}
Это работает для заполнения выпадающих списков, но я не уверен, как заполнить коллекцию SelectedDealSummaries или удалить выбранную сводку сделки из списка (аналогично тому, что я сделал бы с WebForms).
Кроме того, как бы мне добавить элемент в список, например «Выбрать описание сделки ...»?
UPDATE:
Я изменил свой код для использования индексации и вызова функции javascript ... но я застрял на том, что делать в javascript.
@using (Html.BeginForm("DealSummaryComparison", "Reporting", FormMethod.Post)) {
for (int i = 0; i <= 4; i++) {
<div>
File @(i + 1):
@Html.DropDownListFor(m => m.SelectedDealSummaries[i], dealSummaryList,
new {onchange = "updateAvailable()"})
</div>
}
}
<script type="text/javascript">
function updateAvailable() {
alert("updating");
}
</script>