- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
数据库表:
|ID| |Athlete| |Sport|
1 Jacoby Ellsbury Baseball
2 Dustin Pedroia Baseball
3 Kobe Bryant Basketball
4 Lebron James Basketball
5 Patrick Kane Hockey
6 Sidney Crosby Hockey
我想在我的创建操作中创建一个仅包含 Sport
属性的下拉列表
我尝试过的:
ViewBag.Sport = new SelectList(db.AthleteTable.Distinct(), "ID", "Sport");
或者:
ViewBag.Sport = new SelectList(db.AthleteTable, "ID", "Sport").Distinct();
CSHTML:
<div class="form-group">
@Html.LabelFor(model => model.Sport, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("Sport", null, "-- Select Sport --", htmlAttributes: new { @class = "form-control" } )
@Html.ValidationMessageFor(model => model.Sport, "", new { @class = "text-danger" })
</div>
</div>
这呈现了我的下拉列表,但值是这样重复的:
Baseball
Baseball
Basketball
Basketball
Hockey
Hockey
我想要的:
Baseball
Basketball
Hockey
感谢任何帮助。
更新:
我的表格是这样的原因是因为我可以创建其他下拉列表并将每个运动员按运动分开:
List<SelectListItem> lstAthletes = new List<SelectListItem>();
using(var context = new ConnectionString())
{
List<AthleteTable> lstAthletes = context.AthleteTable.ToList();
var groups = lstAthletes.GroupBy(x => x.Sport);
foreach(var group in groups)
{
var slg = new SelectListGroup() { Name = group.Key };
foreach(AthleteTable athlete in group)
{
SelectListItem item = new SelectListItem() { Text = athlete.Athlete, Value = athlete.ID.ToString(), Group = slg };
lstAthletes.Add(item);
}
}
}
最佳答案
你可以使用GroupBy
:
var distinctSports = db.AthleteTable.GroupBy(a => a.Sport).Select(g => g.First());
ViewBag.Sport = new SelectList(distinctSports, "ID", "Sport");
但是,奇怪的是,您从运动员表中选择运动并将运动员 ID 映射到完全不相关的运动名称,因为它是运动员 ID 而不是运动 ID。
通常你应该在你的运动员表中有一个Sport
-table 和一个指向它的外键。然后您可以从中进行选择,所有运动项目都是独一无二的。
关于c# - 使 DropDownList 与众不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36649943/
我正在网站上工作。整个网站都受到保护,因此只有登录用户才能访问该网站(只要Beta测试正在运行->有限的时间)。 我们的网站上有2种两种不同类型的共享。一个是简单的“赞”按钮,另一个仅使用: http
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
我一直在阅读 libadalang 1 2我对此印象深刻。但是,我想知道是否已经使用了这种技术,并且是否有另一种语言支持用于语法和语义分析其代码的库。这是一种独特的方法吗? 最佳答案 C 和 C++:
数据库表: |ID| |Athlete| |Sport| 1 Jacoby Ellsbury Baseball 2 Dustin Pedroia
今天我打开笔记本电脑,STS 向我显示此错误,但我不知道为什么 STS 会提出此错误。 我的java主页是: 我的 gradle 项目使用的是 java 1.7。 也许你可以帮我解决这个问题。 谢谢。
我是一名优秀的程序员,十分优秀!