Все таки вопрос остался открытым, несмотря на полученную консультацию техподдержки.
Все таки "поле загрузки файла" -- это не то что нужно мне в данной ситуации.
Файлы попадают в общую таблицу File с сохранением связи в таблице MyObjectFile.
Так не надо, надо файлы хранить в той же таблице MyObject.....
Так что вопрос остается открытым: как это сделать? Как вообще дать возможность пользователю работать с файлами в системе без использования детали Файлы?
Нравится
Здравствуйте, Александр!
Дублирую инструкцию:
Откройте страницу редактирования контакта (ContactEditPage). Добавьте на страницу контейнер с изображением и поле загрузки файла:

Назовите их PhotoImageBox и PhotoFileUploadEdit. Для поля загрузки файла создайте обработчик события:

В скрипте обработчика события должен быть следующий программный код:
[csharp]
var tableESQ = UserConnection.EntitySchemaManager.GetInstanceByName("Contact");
var entity = tableESQ.CreateEntity(UserConnection);
var contactId = Page.DataSource.ActiveRow.GetTypedColumnValue("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;
[/csharp]
Добавьте обработчик события SaveContactNeeded со следующим содержимым:
[csharp]
Page.AddScript(string.Format("if (Ext.FormValidator.validate()) {0}.save();", Page.DataSource.ClientID));
[/csharp]
Опубликуйте страницу.
"Шамуилов Александр" написал:Как вообще дать возможность пользователю работать с файлами в системе без использования детали Файлы
Если у вас OnSite мб, стоит посмотреть в строну FileStream (http://www.community.terrasoft.ua/forum/topic/7454)
Александр, "Поле загрузки файла" - всего лишь инструмент для получения содержимого файла.
На сколько я помню класс FileStream - небезопасный (об этом трубят даже в Мелкософте).
Если повесить обработчик Change для элемента управления то пользователь случайно выбрав файл, изменив тем самым значение элемента управления, вызовет обработчик PhotoFileUploadEditChange. Была бы моя воля, я бы добавил какую-нить кнопку, по клику на который обрабатывать события.
ИМHO.