我在数据库中有很长的类别列表,我想填充ASP.NET ListBox控件中的类别而不是CheckBoxList控件来保存我的网页空间。但我想将ListBox的ListItem作为复选框,以便用户可以选择多个类别。目前,我通过在每个项目中按 Ctrl并单击来选择多个值。我相信如果我可以提供复选框来选择ListItem,那么它也会更加用户友好。有可能吗?
答案 0 :(得分:0)
您可以这样做的方法是开始向您正在使用的模型中添加一个布尔值,如:
public class Category
{
public int CategoryId{ get; set; }
public string CategoryName{ get; set; }
public bool selected{ get; set; } //<- we can use this for checkboxes
}
为您的.cshtml
创建类别和类似内容的列表@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<div style="height:490px; overflow:auto;">
<br />
<br />
<table class="table dim-table">
@for (int i = 0; i < Model.Categories.Count; i++)
{
@Html.HiddenFor(a => a.Categories[i].CategoryId)
<tr>
<td>
<div>
@Html.DisplayFor(model => model.Categories[i].CategoryName)
</div>
</td>
<td>
@Html.CheckBoxFor(model => model.Categories[i].selected, new { @class = "form-control" })
</td>
</tr>
}
</table>
</div>
<br />
<br />
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create and continue" class="btn btn-primary" />
</div>
</div>
</div>
</div>
}
的CSS:
.dim-table{
background-color: #fff;
}
.dim-table tr:nth-child(even) {
background-color: #d8f0ff;
}
.dim-table tr:nth-child(odd) {
background-color: #fff;
}
然后,现在您可以获得布尔值设置为&#39; true&#39;的类别。
希望这个混乱的评论是有道理的。