我想要做的是根據第一個checkedlistbox中的選定項目填充第二個checkedlistbox,並在父項未選中時從數據庫中刪除項目第一個箱子。我可以通過僅遍歷選中的項目來填充第二個框,但是,如果要從表中刪除它們,我需要包含未選中的項目。這裏是我此刻的代碼:通過循環checkedlistbox填充和刪除數據庫表中的項目
for (int i = 0; i < ckbObjectives.Items.Count; i++)
{
objectiveTableAdapter.ClearBeforeFill = false;
if (ckbObjectives.GetItemChecked(i))
{
this.objectiveTableAdapter.FillByParentObjective((CWSToolkitDataSet.ObjectiveDataTable)cWSToolkitDataSet.Tables["ChildObjectives"], Convert.ToInt32(((DataRowView)ckbObjectives.Items[i])[ckbObjectives.ValueMember].ToString()));
}
else
{
this.objectiveTableAdapter.Delete((CWSToolkitDataSet.ObjectiveDataTable)cWSToolkitDataSet.Tables["ChildObjectives"], Convert.ToInt32(((DataRowView)ckbObjectives.Items[i])[ckbObjectives.ValueMember].ToString()));
}
}
cblSubObjectives.DataSource = cWSToolkitDataSet.Tables["ChildObjectives"];
cblSubObjectives.DisplayMember = "Title";
cblSubObjectives.ValueMember = "ObjectiveID";
我沒有得到任何錯誤,但是第二checkedlistbox是沒有得到填充。任何幫助將不勝感激。謝謝!
你是否已經完成了代碼?你的代碼是否達到了'FillByParentObjective'?這是WPF,Silverlight,Winforms,Webforms? – Lazarus 2011-03-11 16:24:19
它是Visual Studio 2010.不,我的if語句檢查選中的項目是否返回false,無論項目被檢查。編輯:我也試過'if(ckbObjectives.GetItemCheckState(i)== CheckState.Checked)'這也返回false當一個項目被選中。 – Megan 2011-03-11 16:34:18