以编程方式检查复选框列表中的项目,其中文本等于我想要的

Pet*_*che 19 c# items checklistbox

在C#中,我试图检查CheckBoxList中的项目,其中文本等于我的要求.

我会修改代码以检查数据库中存在的项目.

如果你想要一个例子,我需要选择等于abc的checklistbox项

wda*_*avo 44

假设CheckedListBox中的项是字符串:

  for (int i = 0; i < checkedListBox1.Items.Count; i++)
  {
    if ((string)checkedListBox1.Items[i] == value)
    {
      checkedListBox1.SetItemChecked(i, true);
    }
  }
Run Code Online (Sandbox Code Playgroud)

要么

  int index = checkedListBox1.Items.IndexOf(value);

  if (index >= 0)
  {
    checkedListBox1.SetItemChecked(index, true);
  }
Run Code Online (Sandbox Code Playgroud)


Jim*_*ott 8

基于ASP.NET CheckBoxList的示例

<asp:CheckBoxList ID="checkBoxList1" runat="server">
    <asp:ListItem>abc</asp:ListItem>
    <asp:ListItem>def</asp:ListItem>
</asp:CheckBoxList>


private void SelectCheckBoxList(string valueToSelect)
{
    ListItem listItem = this.checkBoxList1.Items.FindByText(valueToSelect);

    if(listItem != null) listItem.Selected = true;
}

protected void Page_Load(object sender, EventArgs e)
{
    SelectCheckBoxList("abc");
}
Run Code Online (Sandbox Code Playgroud)


Dan*_*111 5

所有功劳都归功于@Jim Scott——只是添加了一点。(ASP.NET 4.5 和 C#)

再稍微折射一下...如果将 CheckBoxList 作为对象传递给该方法,则可以将其重用于任何 CheckBoxList。您也可以使用文本或值。

private void SelectCheckBoxList(string valueToSelect, CheckBoxList lst)
{
    ListItem listItem = lst.Items.FindByValue(valueToSelect);
    //ListItem listItem = lst.Items.FindByText(valueToSelect);
    if (listItem != null) listItem.Selected = true;
}

//How to call it -- in this case from a SQLDataReader and "chkRP" is my CheckBoxList`

SelectCheckBoxList(dr["kRPId"].ToString(), chkRP);`
Run Code Online (Sandbox Code Playgroud)