Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать курсор неподвижным на стр. datagridvie 
:(
    Опции темы
mrSomeoneelse
Дата 9.8.2009, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


neZavisimii



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 20.1.2009

Репутация: нет
Всего: нет



Есть база ms sql, dataadapter, dataset, datagridview. И куча пользователей, которые постоянно дополняют и меняют базу данных.  Есть у адаптера свойство fill которое обновляет содержимое dataset и соответственно dataGridView. при этом курсор есть был на какой-то n-ой строку перескакивает на первую, а хотелось бы чтобы он остался на выбранной строке. 
Как это сделать?
PM MAIL   Вверх
Gluttton
Дата 10.8.2009, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: нет
Всего: 54



Метод грубой силы smile ...

Поскользу порядок записей в БД не детерминирован, то можно перед каждым вызовом fill'а запоминать первичный ключ (ПК) записи на которой стоит курсор, а после выполнения fill'а устанавливать его (курсор) обратно по ключу...

Просто проблема, наверное в том, что ПК не отображается?.. Тогда можно попробовать воспользоваться потенциальным ключом (если такие есть)...


--------------------
Слава Україні!
PM MAIL   Вверх
mrSomeoneelse
Дата 11.8.2009, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


neZavisimii



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 20.1.2009

Репутация: нет
Всего: нет



Методом грубой силы не получается, ибо ни dataGridView ни DataSet не имеют прямого метода типа "поставь курсор(номер строки)" есть способ поставить на первую строку и перебирать методом NextRow пока не дойдем до нужной... но представте что это обновление происходит раз в 2 секунды, и при таком обновлении кто-то нажимает кнопку "редактировать запись" и выбирается одна из записей до которой успел дойти nextRow при очередном заполнении....

Очень это не хорошо. Есть ли другой, более разумный метод?
PM MAIL   Вверх
branday
Дата 11.8.2009, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 2.2.2009

Репутация: нет
Всего: нет



У меня реализовано вот так:
//получаем номер строки
            int i = dGVSpecifikaciya.SelectedCells[0].RowIndex;
//получаем индекс первой видимой строки
            int firstDisplayCellIndex = dGVSpecifikaciya.FirstDisplayedScrollingRowIndex;
//тут я получаю ID моей записи
            int fidspec = Convert.ToInt32(dGVSpecifikaciya.Rows[i].Cells["ID"].Value.ToString());
//Вызов диалога для поиска товара
            F_FindeTovarNew dlg = new F_FindeTovarNew(this, fidspec, currentSpecID);
            dlg.ShowDialog();
//Далее обновляю данные
            #region обновление в форме
            using (SoodaTransaction trans = new SoodaTransaction())
            {
                Spec sp = Spec.Load(currentSpecID);
                bSSpecifikaciya.DataSource = sp.CollectionOfSpecifikaciya2;
                bSSpecifikaciya.Position = bSSpecifikaciya.Find("ID", fidspec);
                bgWorker.RunWorkerAsync();
            }
            #endregion
            dGVSpecifikaciya.FirstDisplayedScrollingRowIndex = firstDisplayCellIndex;
        }

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0587 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.