为什么我不能在asp上设置一个值:CheckBox?
没有属性Value
:
在标准HTML上,这是允许的:
为什么?
Text
属性用于呈现复选框的标签。
该控件具有一个InputAttributes
属性,您可以将其添加到:
myChk.InputAttributes.Add("value", "My Value");
我相信如果你只是将value
属性添加到标记中,这也将被填充。
您可以像这样访问该值:
myChk.InputAttributes["value"];
要回答为什么 Value
不是CheckBox
控件的内置属性的问题:
隔离的CheckBox
(只是它自己)不需要任何值。 根据定义,它是一个布尔值,由其ID标识。 您需要做的就是检查是否已检查。
当您对复选框进行分组并且有一个控件(使用ListItem
的CheckBoxList
,该值将起作用 – 每个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