Доброго времени суток!
Появилась задача отображать в карточке контакта его фото.
Смотрю в сторону поля загрузки файла и области изображения. Вопрос состоит в том, как по событию изменений данных в поле загрузки файла вставить это изображение в область и в базу? Ну и соответственно в при следующем открытии уже считывать его с базы?
Нравится
Constantine, прикрепила во вложенном файле пример реализации.
"Бондарь Наталия" написал:Constantine, прикрепила во вложенном файле пример реализации.
Простите за глупый вопрос. А зачем в одном методе подряд 3 раза вызывать установку свойства:
controlImage.UsePrimaryImageColumn = false; controlImage.UsePrimaryImageColumn = true; controlImage.UsePrimaryImageColumn = false;
Одного раза вполне достаточно, чтобы свойство UsePrimaryImageColumn установилось в false.
Или я что-то неправильно понял???
"Бабуков Андрей Александрович" написал:
Бондарь Наталия пишет:
Constantine, прикрепила во вложенном файле пример реализации.
Простите за глупый вопрос. А зачем в одном методе подряд 3 раза вызывать установку свойства:
controlImage.UsePrimaryImageColumn = false;
controlImage.UsePrimaryImageColumn = true;
controlImage.UsePrimaryImageColumn = false;
Одного раза вполне достаточно, чтобы свойство UsePrimaryImageColumn установилось в false.
Или я что-то неправильно понял???Когда-нибудь останется работа только для машин и IT'шников :)
меня тоже интересует этот момент:smile:
Constantine, Андрей,
установите единожды свойство UsePrimaryImageColumn в false.
Код писался давно, поэтому сейчас не могу сказать по какой причине 3 раза вызывается установка свойства.
К сожалению, с кодом оказались проблемы.
При первой загрузке файла - все отлично и прекрасно, но дальше начинаются неприятности....
Если загрузить новый файл - в базе происходит обновление, но файл отображается предыдущий.... Переоткрытие карточки не приносит никаких плодов. При этом, если зайти с другого браузера - файл подтягивается новый. Более того - очищаем поле с картинкой, файл продолжает отображаться....
Переоткрываем карточку - пусто, отлично! Загружаем третье фото - барабанная дробь.... видим самое первое изображение:smile:
По сему родились вопросы: как я понимаю файл висит где-то в кэше, каким образом его оттуда удалять при замене файла, либо вообще заставить туда не ложиться (в идеале); каким образом отображать свежезагруженное фото и соответственно очищать при удалении?
Заранее премного благодарен
Добрый день, Константин!
Если нужно очистить профиль в BPMonline, то это можно сделать в конфигурации:
Но судя по описанию, то профиль нужно очищать в браузере.
"Арсений Белецкий" написал:Добрый день, Константин!
Если нужно очистить профиль в BPMonline, то это можно сделать в конфигурации:
Но судя по описанию, то профиль нужно очищать в браузере.
С уважением,
Белецкий Арсений
Группа компаний Terrasoft
Арсений, возможно я не совсем правильно разъяснил ситуацию. Проблема именно в том, что я создал поле Фото в карточке Контакта. Обработка отображения и загрузки файла выполнена по аналогии с инструкцией Наталии. Выше я описал поведение этого поля, когда клиент работает с системой. Вопрос в том, каким образом предотвратить такое неадекватное поведение?
Да и оба способа, указанные Вами, не помогли, как отображалась самая первая картинка, так и отображается, хотя в базе храниться уже совершенно другая.
Константин, попробуйте открыть карточку ContactEditPage в дизайнере страниц (в конфигурации), открыть ее процесс, и в событии ParentPageLoadCompleteAfterBaseScript
дописать предпоследней строчку кода InitializeContactPhoto();
В примере, который дала Наталья есть следующая строка
Page.AddScript(string.Format("{0}.setImage({1});", Page.ContactPhotoImage.ClientID, Json.Serialize(controlImage, new ControlImageJsonConverter())));
не понимаю Json-это namespace или класс JsonSerializer
Ольга, Json это формат обмена данными между клиентом и сервером (http://flexjson.sourceforge.net/).
просто компилятор ругается на эту строчку, я подключила Terrasoft.UI.WebControls.Utilities.Json.Converters, Newtonsoft.Json
всё равно пишет "Имя Json отсутствует в текущем контексте", вот и пытаюсь понять, где взять и что ещё подключить