データ内の文字列値がチェックボックスのラベルになり、ブール値がボックスをオン/オフにするように、ASP.NET CheckBoxListをDataBindすることは可能ですか?
私のasp.netWebフォームには、次のようなCheckBoxListがあります。
<asp:CheckBoxList runat="server" ID="chkListRoles" DataTextField="UserName" DataValueField="InRole" />
背後にあるコードには、次のコードがあります。
var usersInRole = new List<UserInRole>
{
new UserInRole { UserName = "Frank", InRole = false},
new UserInRole{UserName = "Linda", InRole = true},
new UserInRole{UserName = "James", InRole = true},
};
chkListRoles.DataSource = usersInRole;
chkListRoles.DataBind();
InRole=trueのときにチェックボックスがオンになることを期待していました。InRole="Checked"も試しました。結果は同じでした。DataBindを実行する方法が見つからないようで、自動的にチェックボックスをオン/オフにします。
現在、DataBoundイベントの適切なアイテムにselected = trueを設定することで、問題を解決しています。私の理解を超えたよりクリーンな解決策があるようです。
ありがとうございました