ページに CheckBoxList があり、DataTextField 属性と DataValueField 属性が設定されています。チェックする必要があるかどうかを示すプロパティを指定するために使用できる属性はありますか?
データソースを設定するだけで、チェックされたプロパティを設定するためのコードが必要ないことを望んでいます。可能?
ページに CheckBoxList があり、DataTextField 属性と DataValueField 属性が設定されています。チェックする必要があるかどうかを示すプロパティを指定するために使用できる属性はありますか?
データソースを設定するだけで、チェックされたプロパティを設定するためのコードが必要ないことを望んでいます。可能?
コントロールは ListBox、DropDownList、RadioButtonList などの他のコントロールと同じバインディングを使用するため、それは不可能です。
MSDN によると:
リスト コントロールで複数の選択を設定するには、コントロールの Items コレクションをプログラムでループし、個々の項目ごとに Selected プロパティを設定します。
CheckListBox の OnDataBinding を実装してから、バインドされる各項目のルックアップを行うこともできますが、すべてを 1 か所で行う方がおそらく簡単です。
この例でロックします。
string[] strUserRoles = Roles.GetRolesForUser("Ali");
foreach (var item in Roles.GetAllRoles())
{
chkRoleList.Items.Add(new ListItem()
{
Text = item,
Value = item,
Selected = strUserRoles.Contains(item)
});
}
注: CheckListBox をバインドする場合、各項目のテキストと値の両方を設定する必要があります。