我有一个复选框列表,我想检查它的一些项目, 我想检查存储在数据库中的项目,我是从数据库中选择它们并在一个循环中编写了我们但只选择了最后一项:((<:p>
var selectedRoles = (from r in DataContext.Context.Core_PagesPermission
where r.PageName.Contains(pageName) select r)
.FirstOrDefault();
if(selectedRoles != null)
{
string roles = selectedRoles.Roles;
string[] role = roles.Split(',');
int countTags = role.Count();
foreach (string word in role)
{
CheckBoxList1.SelectedValue = word;
Response.Write(word + "<br/>");
countTags -= 1;
}
}
这有效:
var selectedRoles = (from r in DataContext.Context.Core_PagesPermission where r.PageName.Contains(pageName) select r)
.FirstOrDefault();
dsRoles.DataBind();
CheckBoxList1.DataBind();
if(selectedRoles != null)
{
string roles = selectedRoles.Roles;
string[] role = roles.Split(',');
foreach (string word in role)
{
try
{
CheckBoxList1.Items.FindByValue(word).Selected = true;
}
catch (Exception exp)
{
lbError.Text= exp.ToString();
}
答案 0 :(得分:2)
您需要选择单个项目:
CheckBoxList1.Items.FindByText(word).Selected = true;
或
CheckBoxList1.Items.FindByValue(word).Selected = true;
但是,如果复选框列表中没有您要查找的文本/值,则会引发错误。
答案 1 :(得分:0)
数据表方法复选框
for (int i = 0; i < dt.Rows.Count; i++)
{
chkCategories.Items.FindByValue(dt.Rows[i]["CategoryID"].ToString()).Selected = true;
}