ListBox控件ListItem选项作为ASP.NET中的CheckBoxes

时间:2017-03-24 11:39:59

标签: asp.net listbox listitem

我在数据库中有很长的类别列表,我想填充ASP.NET ListBox控件中的类别而不是CheckBoxList控件来保存我的网页空间。但我想将ListBox的ListItem作为复选框,以便用户可以选择多个类别。目前,我通过在每个项目中按 Ctrl并单击来选择多个值。我相信如果我可以提供复选框来选择ListItem,那么它也会更加用户友好。有可能吗?

1 个答案:

答案 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;的类别。

希望这个混乱的评论是有道理的。