Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Спозиционироваться в гриде на строку с неким зн-ем определенного поля / 4 сообщений из 4, страница 1 из 1
17.12.2012, 11:12
    #38081591
AlexV1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Спозиционироваться в гриде на строку с неким зн-ем определенного поля
Есть grid типа DataGridView, к которому привязан ds типа DataSet;

Зная имя поля в датасете (Name) и его значение, необходимо спозиционироваться на эту строку в гриде.
Все просто на первый взгляд.
В Delphi это делается просто, одной командой ADOQuery1.Locate('id',зн-е,[]);
А как в C# ?

Находил примерные решения с помощью BindingSource, но как то сложно это все, может есть какой то простой способ...
...
Рейтинг: 0 / 0
18.12.2012, 13:59
    #38083450
AlexV1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Спозиционироваться в гриде на строку с неким зн-ем определенного поля
Позиционирование в гриде нашел как сделать

grid1.CurrentCell = grid1.Rows[i].Cells[grid1.CurrentCell.ColumnIndex];

А вот для поиска в DataTable грида пришлось написать свою функцию

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
// ----------------------------------------------------------------------
// Поиск строки в DataTable по некому полю и его значению 
// На выходе: номер найденной строки или -1, если не найдено
// ----------------------------------------------------------------------
private int FindRowInDataTable(ref DataTable dt, string FieldName, string FieldValue)
{
   for (int i = 0; i < dt.Rows.Count - 1; i++)
   {
      if (dt.Rows[i][FieldName].ToString() == FieldValue) { return i; }
   }
   return -1;
}


Работает.

Хотя конечно более стандартному решению, и при этом короткому, был бы рад.
Если кто знает, напишите.
...
Рейтинг: 0 / 0
18.12.2012, 17:05
    #38083879
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Спозиционироваться в гриде на строку с неким зн-ем определенного поля
AlexV1Позиционирование в гриде нашел как сделать

grid1.CurrentCell = grid1.Rows[i].Cells[grid1.CurrentCell.ColumnIndex];

А вот для поиска в DataTable грида пришлось написать свою функцию

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
// ----------------------------------------------------------------------
// Поиск строки в DataTable по некому полю и его значению 
// На выходе: номер найденной строки или -1, если не найдено
// ----------------------------------------------------------------------
private int FindRowInDataTable(ref DataTable dt, string FieldName, string FieldValue)
{
   for (int i = 0; i < dt.Rows.Count - 1; i++)
   {
      if (dt.Rows[i][FieldName].ToString() == FieldValue) { return i; }
   }
   return -1;
}



Работает.

Хотя конечно более стандартному решению, и при этом короткому, был бы рад.
Если кто знает, напишите.

пипец всё с ног на голову, читаем про BindingManager
...
Рейтинг: 0 / 0
18.12.2012, 18:08
    #38084003
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Спозиционироваться в гриде на строку с неким зн-ем определенного поля
AlexV1Находил примерные решения с помощью BindingSource, но как то сложно это все, может есть какой то простой способ...

Офигеть сложность -
Код: c#
1.
bindingSource.Position = bindingSource.Find("Имя", "Маша")
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Спозиционироваться в гриде на строку с неким зн-ем определенного поля / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]