19

C#では、テキストが必要なものと等しいCheckBoxListの項目をチェックしようとしています。

データベースに存在する項目をチェックするようにコードを変更します。

例が必要な場合は、abcに等しいチェックリストボックス項目を選択する必要があります

4

5 に答える 5

45

CheckedListBoxの項目が文字列であると仮定します。

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

または

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

  if (index >= 0)
  {
    checkedListBox1.SetItemChecked(index, true);
  }
于 2012-02-07T23:52:23.233 に答える
10

ASP.NETCheckBoxListに基づく例

<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");
}
于 2012-02-08T00:00:28.177 に答える
4

@JimScottへのすべてのクレジット-ワンタッチを追加しました。(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);`
于 2014-05-06T19:10:17.890 に答える
0

//複数選択:

          private void clbsec(CheckedListBox clb, string text)
          {
              for (int i = 0; i < clb.Items.Count; i++)
              {
                  if(text == clb.Items[i].ToString())
                  {
                      clb.SetItemChecked(i, true);
                  }
              }
          }

==>を使用

clbsec(checkedListBox1,"michael");

or 

clbsec(checkedListBox1,textBox1.Text);

or

clbsec(checkedListBox1,dataGridView1.CurrentCell.Value.toString());
于 2017-01-07T19:18:37.453 に答える
0

動的に作成されたListItemを追加し、選択した値を割り当ててみました。

foreach(var item in yourListFromDB)
{
 ListItem listItem = new ListItem();
 listItem.Text = item.name;
 listItem.Value = Convert.ToString(item.value);
 listItem.Selected=item.isSelected;                 
  checkedListBox1.Items.Add(listItem);
}
checkedListBox1.DataBind();

DBからチェックされた/チェックされていないデータをバインドしないため、データソースのバインドの使用は避けてください。

于 2019-08-02T18:31:15.320 に答える