2010-03-11 40 views
5

tôi tiếp tục nhận được lỗi này khi tôi cố gắng gọi Tìm()Lỗi: Phương pháp được chỉ định không được hỗ trợ?

public void findTxt(string text) 
    { 
     BindingSource src = new BindingSource(); 
     src.DataSource = dataGridView1.DataSource; 
     src.Position = src.Find("p_Name", text); // Specified method is not supported 

     if (src.Position == 0 && dataGridView1.Rows[0].Cells[2].Value.ToString() == text) 
     { 
      MessageBox.Show("Item found!!"); 
      dataGridView1.CurrentCell = dataGridView1.Rows[src.Position].Cells[2]; 
     } 
     else if (src.Position == 0 && dataGridView1.Rows[0].Cells[2].Value.ToString() != text) 
     { 
      MessageBox.Show("Item not found!!"); 
     } 
     else 
     { 
      MessageBox.Show("Item found!!"); 
      dataGridView1.CurrentCell = dataGridView1.Rows[src.Position].Cells[2]; 
     } 

    } 

Edit:

tôi nhận lỗi rằng khi gọi phương pháp findText từ một hình thức khác, Tuy nhiên gọi phương pháp này từ hình thức chính doesn' t dẫn đến lỗi như vậy.

+0

kết quả mong đợi của bạn là gì? – Anonymous

+0

Xin lỗi nhưng tôi không hiểu câu hỏi của bạn. Vui lòng tham khảo bản chỉnh sửa của tôi. – DanSogaard

Trả lời

2

Điều này tùy thuộc vào nguồn dữ liệu cơ bản mà các hoạt động mà nó hỗ trợ. Tôi tin rằng DataTable là người duy nhất ra khỏi hộp hỗ trợ điều này. Bạn có thể kiểm tra (trong trường hợp này) qua:

IBindingListView blv = yourDataSource as IBindingListView; 
bool canSearch = blv != null && blv.SupportsSearching; 

Vì vậy; nguồn dữ liệu cơ bản là gì? A List<T> (hoặc thậm chí BindingList<T>) sẽ không cung cấp điều này.

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