2010-03-11 4 views
5

я получаю эту ошибку, когда я пытаюсь вызвать Найти()Ошибка: Указанный метод не поддерживается?

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:

Я получаю эту ошибку при вызове метода FindText из другой формы, однако вызова этого метода с основной формой Безразлично» t приводит к такой ошибке.

+0

Каков ваш ожидаемый результат? – Anonymous

+0

Извините, но я не понял ваш вопрос. Пожалуйста, обратитесь к моему редактированию. – DanSogaard

ответ

2

Подходящий источник данных зависит от того, какие операции он поддерживает. Я считаю, что DataTable является единственным, что из коробки поддерживает это. Вы можете проверить (в данном случае):

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

So; что является основным источником данных? A List<T> (или даже BindingList<T>) не предусматривает этого.

Смежные вопросы