没有 Value
属性:
<asp:CheckBox ID="CheckBox1" runat="server" />
在标准HTML中,这是允许的:
<input type="checkbox" ID="CheckBox1" value="My Valyue" />
为什么?
“Text”属性用于为复选框呈现标签。
该控件具有一个InputAttributes
属性,您可以添加到其中:
myChk.InputAttributes.Add("value", "My Value");
value
属性,它也会被填充。myChk.InputAttributes["value"];
回答为什么Value
不是CheckBox
控件的内置属性的问题:
一个单独的CheckBox
不需要值,根据定义,它是一个布尔值,并通过其ID标识。您只需要检查它是否被选中。
当您将多个复选框进行分组时,值就会发挥作用,此时有一个控件可用 - CheckBoxList
,它使用ListItem
- 每个ListItem
都有一个Value
属性。
CheckBoxList
。 - Oded不要使用asp:CheckBox控件,而是使用HTML输入复选框,并在服务器上运行它。
<input type="checkbox" id="ck" runat="server" value='<%# Eval("Value") %>' />
<asp:Label ID="lbl" runat="server" AssociatedControlID="ck" Text='<%# Eval("Name") %>'></asp:Label>
foreach (RepeaterItem repeaterItem in repCheckboxes.Items)
{
HtmlInputCheckBox listItem = (HtmlInputCheckBox)repeaterItem.FindControl("ck");
if (listItem.Checked)
{
string val = listItem.Value;
...