如何生成复选框列表?

问题描述:

我想要的形式在页面上显示的数目不详的复选框:如何生成复选框列表?

<input type="checkbox"... /> 
<label for...> 

我的数据库表中有关于这些复选框的信息

Id 
Name 

为了简单起见,让我们说,Id只是一个整数和Name是一种颜色(“红色”,“绿色”)。

如何最好地生成这些盒子?

我当前的代码是

Model

Public Property Colours As IEnumerable(Of CheckBox) 

Public Sub New() 
    Colours = ... 
End Sub 

View

@For Each item In Model.Colours 
    @Html.CheckBox(item.Text, item.Checked) 
    @Html.Label(item.Text, item.Text) 
Next 

此外,如何的CheckBoxList和CheckBoxField字段应该使用吗?

我会考虑使用扩展生成复选框列表,而不是手动滚动它,比如:

有些同事MVC控件工具包的先前版本有问题。这只是我当时的传闻,因为我当时正在处理不同的事情,但只是想在YMMV中提到它。

回复:“你怎么样的CheckBoxList和CheckBoxField字段”应该被使用,我看它的方式是:

  • CheckBoxList的一组相关的选项,你希望人们选择无,一个或可能不止一个
  • CheckBoxField字段,因为当你有一个选项是/否或真/在本质上假(如“嘀我退订”框)

HTH, 弥敦道

+0

CheckBoxField和CheckBox有什么区别? – 2013-03-18 22:40:03

+1

您好罗恩,你的意思是[System.Web.UI.WebControls.CheckBoxField](http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.checkboxfield.aspx)和Html .CheckBox(就像你在原始文章中使用的那样)?如果是这样,那么CheckBoxField就是用于ASP.NET Web表单,因此它具有Web表单所需的额外功能(正如您可以将其描述为一个有状态的系统,而Web是“无状态的”),而Html.CheckBox只是给出了你一个标签作为复选框 – nkvu 2013-03-18 23:01:29

+0

...所以我想从实际的角度来看,它只是取决于你使用CheckBoxField作为ASP.NET Web窗体应用的应用类型。这是我的(简单)理解 - 别人可以给你一个更好的解释:-) – nkvu 2013-03-18 23:05:00