为什么我不能在asp上设置一个值:CheckBox?

没有属性Value

  

在标准HTML上,这是允许的:

  

为什么?

Text属性用于呈现复选框的标签。

该控件具有一个InputAttributes属性,您可以将其添加到:

 myChk.InputAttributes.Add("value", "My Value"); 

我相信如果你只是将value属性添加到标记中,这也将被填充。

您可以像这样访问该值:

 myChk.InputAttributes["value"]; 

要回答为什么 Value不是CheckBox控件的内置属性的问题:

隔离的CheckBox (只是它自己)不需要任何值。 根据定义,它是一个布尔值,由其ID标识。 您需要做的就是检查是否已检查。

当您对复选框进行分组并且有一个控件(使用ListItemCheckBoxList ,该值将起作用 – 每个ListItem都具有Value属性。

而不是使用asp:CheckBox控件,使用html输入复选框,并在服务器上运行它。

   

现在你可以从代码隐藏中引用它作为HtmlInputCheckBox(我的最新例子是在转发器中,所以我可以用其他元素装饰这个替换复选框列表,比如工具提示图像)。

 foreach (RepeaterItem repeaterItem in repCheckboxes.Items) { HtmlInputCheckBox listItem = (HtmlInputCheckBox)repeaterItem.FindControl("ck"); if (listItem.Checked) { string val = listItem.Value; ... 

我知道这不能回答OP的“原因”,但是在搜索这个确切的问题时出现了这个问题,这是一个很好的解决方案。 至于为什么,我认为MS放弃了,因为你无法控制CheckBoxList中的html