所有的复选框都被选中返回,即使"“

本文关键字:即使 quot 返回 复选框 | 更新日期: 2023-09-27 18:03:25

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

<input type="checkbox" name="chkBox"
 checked='<%# SetCheckboxValue((bool)Eval("Contacted"))%>' />

"已联系"是一个bool值,在后面的代码中取决于记录是否被检查(从DB)

protected string SetCheckboxValue(bool Contacted)
    {
        if (Contacted)
        {
            return "checked";
        }
        return String.Empty;
    }

SetCheckboxValue获取T或F,应该返回"checked"或" "然后应用程序应该显示每条记录为选中或空..但正如我所说的所有记录都显示为选中?

有什么想法吗?由于

所有的复选框都被选中返回,即使"“

因为属性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;
}

checked中的值是不必要的,完全是可选的。

<input type='checkbox' checked /> 

相同
<input type='checkbox' checked='checked' /> 

相同
<input type='checkbox' checked='' /> 

您需要完全删除属性checked以取消选中复选框。

相关文章: