我使用Visual Studio 2013和C#。我有一个简单的网页,我想显示名为“紧急”的部分的单选按钮。
此Urgency部分的值位于SQL中名为urgency的表中。我可以以@ Html.DropDownListFor的形式从数据库中成功显示这些值。
这是我用于@ Html.DropdownList的代码:
@Html.DropDownListFor(model => model.client.Urgency, new SelectList(Model.allUrgencies, "Id", "Urgency", 0), " - Select Urgency -")
我试图将@ Html.DropDownListFor转换为@ Html.CheckBoxFor,这被证明是非常困难的,而且我正努力让它发挥作用。
我设法将下拉列表转换为以下代码,但这仍会产生错误。
@Html.CheckBoxFor(model => model.client.Urgency, new SelectList(Model.allU, "Id", "Urgency1"))
这些是错误:
无法隐式转换类型'短?'到了布尔'
无法将lambda表达式转换为委托类型' System.Func'因为块中的某些返回类型不能隐式转换为委托返回类型。
这是我的模型中的列表。
[Display(Name = "Urgency:")]
public List<Urgency> allUrgencies { get; set; }
以下是我的数据库表的屏幕截图。
欢迎任何建议。
答案 0 :(得分:1)
我使用以下方法支持Select All / None功能,它就像魅力一样:
<强> 型号: 强>
public class EditUserViewModel
{
public EditUserViewModel()
{
this.GroupsList = new List<SelectListItem>();
}
// Add a GroupsList Property:
public ICollection<SelectListItem> GroupsList { get; set; }
//other properties
}
的 查看: 强>
<div class="form-group">
@Html.Label("Groups", new { @class = "col-md-3 control-label" })
<div class="col-md-6">
<div class="checkbox">
<label>
<input type="checkbox" id="checkAll" name="" class="" />
<span class="cr"><i class="cr-icon glyphicon glyphicon-ok"></i></span>
<text id= "checkText">All?</text>
</label>
</div>
@foreach (var item in Model.GroupsList)
{
<div class="checkbox">
<label>
<input type="checkbox" name="selectedGroups" value="@item.Value" />
<span class="cr"><i class="cr-icon glyphicon glyphicon-ok"></i></span>
@item.Text
</label>
</div>
}
</div>
</div>
<script>
$("#checkAll").change(function () {
var checked = $(this).prop("checked");
$("input:checkbox").prop('checked', checked);
$('#checkText').text(checked ? 'None?' : 'All?');
});
</script>
希望这会有所帮助......
答案 1 :(得分:0)
尝试:
为什么使用CheckBoxFor
,您需要使用RadioButtonFor
。
遍历您的列表,为每个绑定到它所代表的相同模型属性的项目生成@Html.RadioButtonFor
。
答案 2 :(得分:0)
经过一段时间的游戏并建议使用radiobutton选项。我已设法通过以下代码完成此任务......
@Html.RadioButtonFor(model => model.client.Urgency, 1 ,new { id = "rbUrgent"})
@Html.Label("rbUrgent", "Urgent")
@Html.RadioButtonFor(model => model.client.Urgency, 2 ,new { id = "rbNotUrgent"})
@Html.Label("rbNotUrgent", "Not Urgent")