我有一个记录列表,我使用转发器在屏幕上显示。其中一列包含“已联系”复选框。我已经设置了一些要检查的记录,而有些则没有。(在数据库中)...但是当页面加载时,所有记录都被检查了......有人知道为什么吗?
<input type="checkbox" name="chkBox"
checked='<%# SetCheckboxValue((bool)Eval("Contacted"))%>' />
“联系”是代码中设置的bool,具体取决于是否检查了记录(来自数据库)
protected string SetCheckboxValue(bool Contacted)
{
if (Contacted)
{
return "checked";
}
return String.Empty;
}
SetCheckboxValue获取T或F并应返回“checked”或“” 然后应用程序应显示每个记录为已选中或为空。但正如我所说的所有记录都显示为已检查?
任何想法的人? 感谢
答案 0 :(得分:6)
因为属性checked
是布尔属性,并不一定需要值。
是否存在表明是否选中了复选框。
将您的加价更改为:
<input type="checkbox" name="chkBox" <%# SetCheckboxValue((bool)Eval("Contacted"))%> />
注意:为了符合X / HTML标准,您应该将属性标记生成为:checked="checked"
但对于HTML,更简单的checked
就足够了。
protected string SetCheckboxValue(bool Contacted)
{
if (Contacted)
{
return "checked=\"checked\"";
}
return String.Empty;
}
答案 1 :(得分:4)
checked
不是必需的,完全是可选的。
<input type='checkbox' checked />
与
相同<input type='checkbox' checked='checked' />
与
相同<input type='checkbox' checked='' />
您需要完全删除属性checked
以取消选中该复选框。