Terrasoft 2.8

Не отображаются столбцы MemoryDataset

Здравствуйте.
Создала окно на основе wnd_BaseMemDSGridArea
Добавила DataLink, привязанный к MemoryDataset, у которого есть несколько полей.
Привязала грид к этому даталинку.
Добавила к даталинку DataGridView и у него определила колонки и указала у колонок в качестве DataFieldName поля из MemoryDataset, установила, чтобы они были видимые.
Но само разделение на колонки не отображаются и не отобрадаются их заголовки, и при запуске окна при добавлении строк в грид, появляется строка, но пустая.
Хотя данные, вводимые в нее заведомо не пустые (проверяла при помощи ShowInformationDialog).

Что я сделала не так? И что нужно поправить?

Спасибо

Нравится

8 комментариев

На всякий случай привожу код добавления строк в датасет.

[javascript]
function PrepareSelectQueryByID(SelectQueryUSI, ID)
{
var SelectQuery = Services.GetNewItemByUSI(SelectQueryUSI);
ApplySelectQueryFilter(SelectQuery, 'ID', ID, true);
DisableAllColumns(SelectQuery.Columns, false, true);
for(var i=0; i

Здравствуйте, Валерия.
MemoryDataset необходимо всегда заполнять на событие OnAfterOpen. А в Вашем случае Вы сначала заполняете данными датасет, а потом вызываете
[javascript]
...
RefreshDataset(BaseMemDSGridArea.GridDataset);
...
[/javascript] , при этом данные теряются...

я думаю что Вы не установили у компонента DataGrid свойство
ActiveView (Ваш DataGridView)

Проблема появилась еще на этапе создания окна.
В редакторе окна не отображается разделение на столбцы и названия столбцов.

Мне не нужно заполнять датасет на событие OnAfterOpen.

У меня он заполняется данными из формы справочника. Она передает ID элемента справочника в форму датасета,
и происходит вставка строки.

Денис, спасибо, проблема была именно в этом.

"Цыбульникова Валерия" написал:
Мне не нужно заполнять датасет на событие OnAfterOpen.

Для нормального функционирования MemoryDataset в DataGrid заполнять необходимо именно в событии AfterOpen. Попробуйте нажать кнопку refresh в гриде после того как у Вас появяться данные.

Александр, закомментировала строку с RefreshDataset, теперь все работает, как и должно.

Валерия, этого не достаточно, когда у Вас появиться окно выбора данных, и там нажать refresh или сортировку по колонкам, то данные пропадут если Вы их не наполняете в событии OnAfterOpen.

Показать все комментарии