Все таки вопрос остался открытым, несмотря на полученную консультацию техподдержки.
Все таки "поле загрузки файла" -- это не то что нужно мне в данной ситуации.
Файлы попадают в общую таблицу File с сохранением связи в таблице MyObjectFile.
Так не надо, надо файлы хранить в той же таблице MyObject.....
Так что вопрос остается открытым: как это сделать? Как вообще дать возможность пользователю работать с файлами в системе без использования детали Файлы?
Нравится
Здравствуйте, Александр!
Дублирую инструкцию:
Откройте страницу редактирования контакта (ContactEditPage). Добавьте на страницу контейнер с изображением и поле загрузки файла:
Назовите их PhotoImageBox и PhotoFileUploadEdit. Для поля загрузки файла создайте обработчик события:
В скрипте обработчика события должен быть следующий программный код:
var tableESQ = UserConnection.EntitySchemaManager.GetInstanceByName("Contact"); var entity = tableESQ.CreateEntity(UserConnection); var contactId = Page.DataSource.ActiveRow.GetTypedColumnValue<Guid>("Id"); if(contactId == Guid.Empty || (!IsEdit && !CopyCreated)){ Page.ThrowEvent("SaveContactNeeded"); return true; } if (entity.FetchFromDB(contactId)) { if(Page.PhotoFileUploadEdit.FileBytes.Length==0) entity.SetStreamValue("Photo", new MemoryStream(Page.PhotoFileUploadEdit.FileBytes)); if((!IsNew || contactId != Guid.Empty)) { entity.Save(); } } return true;
Добавьте обработчик события SaveContactNeeded со следующим содержимым:
Page.AddScript(string.Format("if (Ext.FormValidator.validate()) {0}.save();", Page.DataSource.ClientID));
Опубликуйте страницу.
"Шамуилов Александр" написал:Как вообще дать возможность пользователю работать с файлами в системе без использования детали Файлы
Если у вас OnSite мб, стоит посмотреть в строну FileStream (http://www.community.terrasoft.ua/forum/topic/7454)
Александр, "Поле загрузки файла" - всего лишь инструмент для получения содержимого файла.
На сколько я помню класс FileStream - небезопасный (об этом трубят даже в Мелкософте).
Если повесить обработчик Change для элемента управления то пользователь случайно выбрав файл, изменив тем самым значение элемента управления, вызовет обработчик PhotoFileUploadEditChange. Была бы моя воля, я бы добавил какую-нить кнопку, по клику на который обрабатывать события.
ИМHO.