【发布时间】:2015-08-24 09:13:02
【问题描述】:
我正在努力将数据放入下拉框中。数据不是预先定义的数据集,因此它不像将数据硬编码到下拉框中那样简单。数据已创建,一旦创建,我希望它填充到下拉框中。目前数据由复选框显示。我还想要一个搜索功能,它会带来智能感知。例如,当我输入“ALE”时,我希望它显示带有字母“ALE”的数据,例如“Alex”、“Alexander”、“Alexis”等。请理解我对 MVC 很陌生.
简而言之,这就是我正在努力摆脱我的程序的原因。我的程序创建了“研究人员”,一旦系统上捕获了“研究人员”,“研究人员”现在可以进行研究“提交”。因此,当“提交”被捕获时,“研究人员”应该能够从下拉框中搜索他/她的姓名(以及其他姓名,如有必要)。由于名称会很多,因此“研究人员”也应该在下拉列表旁边具有搜索功能。
创建提交视图:
<div class="form-group">
@Html.Label("Researchers", new { @class = "control-label col-md-2" })
<div class="col-md-offset-2 col-md-10">
@{
int cnt = 0;
List<RMS.ViewModels.AssignedResearcherData> researchers = ViewBag.Researcher;
foreach (var researcher in researchers)
{
if (cnt++ % 3 == 0)
{
@:</tr><tr>
}
@:<td>
<input type="checkbox"
name="selectedResearchers"
value="@researcher.ResearcherID"
@(Html.Raw(researcher.Assigned ? "checked=\"checked\"" : "")) />
@researcher.FullName
@:</td>
}
@:</tr>
}
</div>
</div>
提交控制器:
private void PopulateAssignedResearcherData(Submission submission)
{
var allResearchers = db.Researcher;
var submissionResearchers = new HashSet<int>(submission.Researcher.Select(i => i.ResearcherID));
var viewModel = new List<AssignedResearcherData>();
foreach (var researcher in allResearchers)
{
viewModel.Add(new AssignedResearcherData
{
ResearcherID = researcher.ResearcherID,
FirstName = researcher.FirstName,
Surname = researcher.Surname,
Assigned = submissionResearchers.Contains(researcher.ResearcherID)
});
}
ViewBag.Researcher = viewModel;
// ViewBag.ResearcherSelect = new MultiSelectList(viewModel, "ResearcherID", "FullName");
}
【问题讨论】:
标签: javascript jquery html asp.net-mvc asp.net-mvc-4