0

リピーターを使用して画面に表示するレコードのリストがあります。列の 1 つに「連絡先」チェックボックスが含まれています。一部のレコードをチェックするように設定し、いくつかのレコードをチェックしないように設定しました(DB内)...しかし、ページが読み込まれると、すべてのレコードがチェックされます...誰かが理由を知っていますか?

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

「連絡済み」は、レコードがチェックされているかどうかに応じて、コードビハインドに設定されたブール値です(DBから)

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

        return String.Empty;
    }

SetCheckboxValue は T または F のいずれかを取得し、"checked" または " " を返す必要があります。次に、アプリケーションは各レコードをチェック済みまたは空として表示する必要があります。

アイデアはありますか?ありがとう

4

2 に答える 2

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;
}
于 2013-03-11T16:14:01.763 に答える
4

checked値は必須ではなく、完全にオプションです。

<input type='checkbox' checked /> 

と同じです

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

と同じです

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

checkedチェックボックスをオフにするには、属性を完全に削除する必要があります。

于 2013-03-11T16:15:20.367 に答える