2012-10-25 33 views
7

Tôi nên thêm gì vào mã của mình để chỉ hiển thị kết quả tìm kiếm của tôi?Tìm kiếm DataGridview: chỉ hiển thị tìm kiếm và ẩn các hàng khác?

Ngay bây giờ khi tôi tìm kiếm tìm kiếm sẽ trở thành lựa chọn (được đánh dấu) và những người khác vẫn giữ nguyên.

Đã cố gắng ẩn các hàng khác nhưng không thành công (và chỉ hiển thị tìm kiếm, riêng lẻ). Bất kỳ đề xuất? Im sử dụng chế độ xem dữ liệu.

Mã của tôi:

private void button3_Click_1(object sender, EventArgs e) 
{ 
    string search = textBox1.Text; 

    for (int i = 0; i < dgTest.Rows.Count; i++) 
    { 
     if (dgTest.Rows[i].Cells[0].Value.ToString() == search) 
     { 
      dgTest.Rows[i].Selected = true; 
      break; 
     } 
     else 
     { 
      dgTest.Rows[i].Selected = false; 
     } 
    } 
} 

Trả lời

1

bạn có thể thử này:

for (int i = 0; i < dgTest.Rows.Count; i++) 
{ 
    if (dgTest.Rows[i].Cells[0].Value.ToString() == "search") 
    { 
     dgTest.Rows[i].Selected = true; 
     dgTest.Rows[i].Visible = true; 
    } 
    else 
    { 
     dgTest.Rows[i].Visible = false; 
     dgTest.Rows[i].Selected = false; 
    } 
} 
5

Nếu DataGridView của bạn không bị ràng buộc với một nguồn dữ liệu, sau đó thiết lập thuộc tính Visible của hàng false sẽ giấu nó:

for (int i = 0; i < dgTest.Rows.Count; i++) 
    { 
     var row = dgTest.Rows[i]; 

     if (row.Cells[0].Value.ToString() == search) 
     { 
      row.Selected = true; 
      row.Visible = true; 
     } 
     else 
     { 
      row.Selected = false; 
      row.Visible = false; 
     } 
    } 

(tôi loại bỏ các 'phá vỡ 'lệnh, ngay cả sau khi bạn đã tìm thấy hàng phù hợp, bạn sẽ muốn tiếp tục và ẩn các hàng khác.)

Nếu bạn đang sử dụng DataBinding, tuy nhiên, nó không phải dễ dàng như vậy, như được hiển thị trong this page.

+0

Cảm ơn bạn đã giúp đỡ! Tôi đang sử dụng databinding vì vậy nó trở nên khó khăn hơn. : P – user1773766

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