Здравствуйте.
Создала окно на основе wnd_BaseMemDSGridArea
Добавила DataLink, привязанный к MemoryDataset, у которого есть несколько полей.
Привязала грид к этому даталинку.
Добавила к даталинку DataGridView и у него определила колонки и указала у колонок в качестве DataFieldName поля из MemoryDataset, установила, чтобы они были видимые.
Но само разделение на колонки не отображаются и не отобрадаются их заголовки, и при запуске окна при добавлении строк в грид, появляется строка, но пустая.
Хотя данные, вводимые в нее заведомо не пустые (проверяла при помощи ShowInformationDialog).
Что я сделала не так? И что нужно поправить?
Спасибо
Нравится
На всякий случай привожу код добавления строк в датасет.
[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] , при этом данные теряются...
Проблема появилась еще на этапе создания окна.
В редакторе окна не отображается разделение на столбцы и названия столбцов.
Мне не нужно заполнять датасет на событие OnAfterOpen.
У меня он заполняется данными из формы справочника. Она передает ID элемента справочника в форму датасета,
и происходит вставка строки.
"Цыбульникова Валерия" написал:
Мне не нужно заполнять датасет на событие OnAfterOpen.
Для нормального функционирования MemoryDataset в DataGrid заполнять необходимо именно в событии AfterOpen. Попробуйте нажать кнопку refresh в гриде после того как у Вас появяться данные.
Александр, закомментировала строку с RefreshDataset, теперь все работает, как и должно.
Валерия, этого не достаточно, когда у Вас появиться окно выбора данных, и там нажать refresh или сортировку по колонкам, то данные пропадут если Вы их не наполняете в событии OnAfterOpen.