如何遍历checkedlistbox并检查项目?

时间:2013-07-30 08:21:55

标签: c#

我有一个检查列表框绑定了一些数据源,我将valueMember分配给某个ID? 现在,checkedlist框被绑定,我有另一个数据,我需要通过它来捕获每个id,如果有一些coulmn并且想要在checkedlist框项目的值成员值中检查它,如果两者匹配,则将检查项目。我做了以下但无法选中复选框。 你能帮我解决这个问题吗?

  private void catCmb_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (mode == "EDIT")
            {
                custOptionChkList.DataSource = cDressing.GetAllDressingDetailByCatID(14);
                custOptionChkList.DisplayMember = "Description";
                custOptionChkList.ValueMember = "CatID";
                DataTable dt = objCFreeCust.GetAllFreeCustomizationItem(currProductID, custCmb.SelectedIndex);
                foreach (var ListItem in custOptionChkList.Items)
                {
                    DataRowView drv = ListItem as DataRowView;
                    int id = Convert.ToInt16(drv["CatID"]);
                    foreach (DataRow dr in dt.Rows)
                    {
                        if (Convert.ToInt16(dr["CustomizationId"]) == id)
                        {
                            //here i need to check the item's check box from checkedboxlist
                        }

                    }
                }
            }

        }

2 个答案:

答案 0 :(得分:2)

您必须使用SetItemChecked的{​​{1}}方法。

CheckedListBox

int index = 0; //to keep track of each item index foreach (var ListItem in custOptionChkList.Items) { DataRowView drv = ListItem as DataRowView; int id = Convert.ToInt16(drv["CatID"]); foreach (DataRow dr in dt.Rows) { if (Convert.ToInt16(dr["CustomizationId"]) == id) { custOptionChkList.SetItemChecked(index, true); //true means set it to checked } } index++; } 循环:

for

答案 1 :(得分:1)

您好,请试试这个..

如果你要使用Linq到Dataset然后使用第一种方法将数据表转换为AsEnumerable以使用linq进行查询,或者只是简单地使用select数据表的方法,如第二个approch所示。

foreach (ListItem item in custOptionChkList.Items)
{
     if (dt.AsEnumerable().Any(row => row.Field<String>("CustomizationId").Equals(item.Value)))
     {
         item.Selected = true;
     }
}
                  OR
foreach (ListItem item in custOptionChkList.Items)
{
     var foundid= dt.Select("CustomizationId = '" + item.Value + "'");
     if (foundid.Length != 0)
     {
         item.Selected = true;
     }
 }