C# C.NET中的CheckedListBox重新填充问题
我已经填充了一个CheckedListBox,它将数据源与Display成员和Vlaue成员绑定在一起。 我已将checkedValues的值保存在数据库中的关系表中。 我需要重新填充checkedListbox,以获取之前已选中保存的值。我已经完成了第一步。但是在第二步中,我无法通过比较关系表来获取项目的索引以保持对它们的检查 按照我的代码绑定CheckedListBox:C# C.NET中的CheckedListBox重新填充问题,c#,windows,C#,Windows,我已经填充了一个CheckedListBox,它将数据源与Display成员和Vlaue成员绑定在一起。 我已将checkedValues的值保存在数据库中的关系表中。 我需要重新填充checkedListbox,以获取之前已选中保存的值。我已经完成了第一步。但是在第二步中,我无法通过比较关系表来获取项目的索引以保持对它们的检查 按照我的代码绑定CheckedListBox: private void FillCheckedListBox (CheckedListBox chkListBox,
private void FillCheckedListBox (CheckedListBox chkListBox, string sSql, string displayMember, string valueMember)
{
try {
SqlConnection con = new SqlConnection(DaoCodeGCommon.GetConstring());
con.Open();
DataTable accTable = new DataTable();
SqlCommand cmd = new SqlCommand(sSql, con);
SqlDataAdapter adpObj = new SqlDataAdapter(cmd);
accTable.TableName = "tbl";
adpObj.Fill(accTable);
con.Close();
chkListBox.DataSource = accTable;
chkListBox.ValueMember = valueMember;
chkListBox.DisplayMember = displayMember;
}
catch (Exception ex) {
throw ex;
}
}
有没有办法重新填充checkedListBox?如果您在数据库中有状态,并且正在从数据库中提取数据,则可以轻松地重新加载复选框列表 例如,假设您加载带有某种读取器的复选框列表:
chkUsers.DataSource = reader;
chkUsers.DataTextField = "YourTextFieldToView";
chkUsers.DataValueField = "YourValueFieldToHide";
chkUsers.DataBind();
现在您已经加载了复选框,现在需要打开/关闭复选框
for(int i =0; i< chkUsers.Items.Count-1; i++)
{
if(dbVal == chkUsers.Items(i).Value)
{
chkUsers.Items(i).Selected = dbVal;
}
}
在这种情况下,dbVal可能是读卡器、数据集或数据表等中的某个值。我请求通过电子邮件将解决方案发送给jajaboor@gmail.com提前谢谢。我-为什么如果这个问题发生在这个论坛上的其他人身上,他们不知道如何解决这个问题,因为有人给你发了一个解决方案?不要通过电子邮件告诉别人你需要解决方案。如果有解决方案,应该贴在这里。@Farazi:我留下@john的评论作为我编辑的解释。