所有复选框都已选中,即使“”

时间:2013-03-11 16:11:43

标签: c# asp.net

我有一个记录列表,我使用转发器在屏幕上显示。其中一列包含“已联系”复选框。我已经设置了一些要检查的记录,而有些则没有。(在数据库中)...但是当页面加载时,所有记录都被检查了......有人知道为什么吗?

<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”或“” 然后应用程序应显示每个记录为已选中或为空。但正如我所说的所有记录都显示为已检查?

任何想法的人? 感谢

2 个答案:

答案 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以取消选中该复选框。

相关问题