Я продолжаю получать эту ошибку, когда я пытаюсь звонить, Находят ()
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];
}
}
Править:
Я получаю ту ошибку, когда вызов findText метод от другой формы, Однако вызов этого метода от основной формы не приводят к такой ошибке.
Это зависит от базового источника данных, какие операции он поддерживает. Я полагаю, что DataTable
- единственный, который из коробки поддерживает это. Вы можете проверить (в данном случае) через:
IBindingListView blv = yourDataSource as IBindingListView;
bool canSearch = blv != null && blv.SupportsSearching;
Итак, что является базовым источником данных? List
(или даже BindingList
) не обеспечит этого.