我已经填充了一个CheckedListBox,它将DataSource与Display Member和Vlaue Member绑定在一起。 我已经使用关系表在数据库中保存了checkedValues的值。 我需要重新填充checkedListbox,以便检查先前检查过哪个值(已保存)。我已完成第一步。但是在第二步中,我无法获得项目的索引来比较关系表来检查它们。
按照我的代码绑定CheckedListBox:
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?
答案 0 :(得分:0)
如果您拥有数据库中的状态并且从数据库中提取数据,则可以轻松地重新加载复选框列表。
例如,假设您加载了一个带有某种读者的复选框列表:
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可能是读者或数据集或数据表等中的某些值。