|
|
|
Обновление данных грида
|
|||
|---|---|---|---|
|
#18+
Всем привет! Нужно решить такую проблемку, но вариантов пока нет. Может быть у кого-нибудь есть идеи? Требуется организовать обновление данных грида таким образом, чтобы не происходило его зависания, изменение фокуса выделения. Проще говоря пользователь работает в гриде и в on-line режиме данные грида поддерживаются в актуальном состоянии, скажем раз в несколько минут, добавляются или изменяются строки даных, отредактированные другими пользователями. Как проще организовать подобную задачу? Использовать метод адаптера update для подобной задачи не удается, так как при этом проявляются описанные выше недостатки. Спасибо за подсказки! Fm1.1, грид DevExpress ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 12:31 |
|
||
|
Обновление данных грида
|
|||
|---|---|---|---|
|
#18+
Ни у кого нет вариантов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 15:38 |
|
||
|
Обновление данных грида
|
|||
|---|---|---|---|
|
#18+
А в чем сложность? Можно писать и без адаптеров, просто SQLCOMMAND. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 21:14 |
|
||
|
Обновление данных грида
|
|||
|---|---|---|---|
|
#18+
А в чем сложность? Можно писать и без адаптеров, просто SQLCOMMAND. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 21:42 |
|
||
|
Обновление данных грида
|
|||
|---|---|---|---|
|
#18+
А если попробовать так. запомнить фокус Асинхронным режимом (FW2) считывать таблицу в Ф. обратного вызова делать подмену данных и востанавливать фокус.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2007, 08:56 |
|
||
|
Обновление данных грида
|
|||
|---|---|---|---|
|
#18+
StegazifalsА если попробовать так. запомнить фокус Асинхронным режимом (FW2) считывать таблицу в Ф. обратного вызова делать подмену данных и востанавливать фокус.? Да, я тоже так думал. Но это немного не то. Грид несколько хитрый. Там данные сгруппированы по одному или нескольким полям. Придется запоминать еще какая группа была развернута, получится как мультик, несколько неудобно. Если бы только добавление шло, все было бы просто, а вот как изменения отследить не знаю. Ну ладно, будем думать дальше. Если у кого-нить возникнет мысля, буду благдарен. А может асинхронно в фоне построковую проверку выполнять попробую. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2007, 09:46 |
|
||
|
Обновление данных грида
|
|||
|---|---|---|---|
|
#18+
АлександрIIИспользовать метод адаптера update для подобной задачи не удается, так как при этом проявляются описанные выше недостатки.А разве Update() адаптера способен вносить изменения в DataTable? Я думал, что этот метод "переносит" изменения из DataTable в базу данных. А для того, чтобы обновить данные из базы в DataTable, нужно использовать метод Fill(). Только он требует наличия PrimaryKey. Я сейчас как раз разбираюсь с подобной проблемой. У меня следующая схема: Есть адаптер, есть DataTable, есть BindingSource. Адаптером заполняем таблицу, BindingSource.DataSource = таблица. А потом просто привязываем грид к BindingSource. На этом этапе про грид можно забыть. Наша задача - поддерживать в DataTable данные в актуальном состоянии. Для этого, когда нужно, можно делать адаптер.Fill(таблица). Этот подход я представляю себе примерно так: У нас есть две сущности. Это "живая" база данных и копия нужной таблицы в памяти компьютера пользователя. Если где-то происходят изменения, их нужно "дублировать". Если пользователь изменяет данные (в DataTable), то изменения из DataTable нужно перенести в базу (адаптер.Update()). Если данные были изменены в базе, то нужно эти изменения отразить в DataTable, я пока делаю это adapter.Fill(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2007, 11:42 |
|
||
|
|

start [/forum/topic.php?fid=17&fpage=96&tid=1352822]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
51ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 224ms |
| total: | 369ms |

| 0 / 0 |
