2012-02-07 34 views
17

Trong C#, tôi đang cố gắng Kiểm tra một mục trong một CheckBoxList nơi văn bản bằng với những gì tôi yêu cầu.Lập trình Kiểm tra một mục trong Danh sách kiểm tra nơi văn bản bằng với những gì tôi muốn

Tôi sẽ sửa đổi mã để kiểm tra các mục tồn tại trong cơ sở dữ liệu.

Nếu bạn muốn một ví dụ, tôi cần phải chọn mục CheckListBox đó bằng abc

+0

Bạn đã cố gắng này mình chưa? Giao diện của CheckBoxList có phải là thứ bạn không hiểu không? – Fuzz

+0

Vui lòng không thêm tiền tố vào tiêu đề của bạn bằng "C#" và như vậy. Đó là những gì các thẻ cho. –

+2

Vui lòng xem Câu hỏi thường gặp về chữ ký trong bài đăng. Tôi cũng đã xóa dòng cảm ơn của bạn, vì có nhiều khả năng không phải là không ai giúp bạn vì bạn chưa cho biết rằng bạn đã cố gắng tự giúp mình. –

Trả lời

40

Giả sử rằng các mục trong CheckedListBox của bạn là chuỗi:

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

Hoặc

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

    if (index >= 0) 
    { 
    checkedListBox1.SetItemChecked(index, true); 
    } 
+0

'giá trị' trong mã là gì? vui lòng giải thích! – Vikrant

+0

Đó là giá trị bạn muốn khớp, E.G. một chuỗi chữ "MyValue" – wdavo

+1

'if (index> 0)' nên là 'if (index> = 0)', vì IndexOf có thể trả về số không nếu nó tìm thấy mục đầu tiên trong danh sách. Nó trả về -1 nếu không tìm thấy giá trị. – FireSBurnsmuP

8

Ví dụ dựa trên 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"); 
} 
+0

Chức năng FindByText không tồn tại đối với tôi. –

+0

Đây có phải là ứng dụng asp.net không? Hãy cho tôi biết phiên bản .NET và môi trường nào và tôi sẽ vui lòng cung cấp cho bạn hướng dẫn cụ thể. –

+0

Xin chào Jim, tôi sẽ sử dụng C# .Net trong Visual Studio 2010, sử dụng Framework 4.0 Client. –

2

Tất cả tín dụng cho @Jim Scott - chỉ cần thêm một lần chạm. (ASP.NET 4.5 & C#)

Khúc xạ này nhiều hơn một chút ... nếu bạn vượt qua CheckBoxList làm đối tượng cho phương thức, bạn có thể sử dụng lại nó cho bất kỳ CheckBoxList nào. Ngoài ra, bạn có thể sử dụng Văn bản hoặc Giá trị.

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);` 
0

// Nhiều lựa chọn:

  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); 
        } 
       } 
      } 

sử dụng ==>

clbsec(checkedListBox1,"michael"); 

or 

clbsec(checkedListBox1,textBox1.Text); 

or 

clbsec(checkedListBox1,dataGridView1.CurrentCell.Value.toString()); 
+0

Thêm một số giải thích với câu trả lời cho cách câu trả lời này giúp OP trong việc khắc phục sự cố hiện tại –

Các vấn đề liên quan