Изображение в карточке Контакта

Доброго времени суток!

Появилась задача отображать в карточке контакта его фото.
Смотрю в сторону поля загрузки файла и области изображения. Вопрос состоит в том, как по событию изменений данных в поле загрузки файла вставить это изображение в область и в базу? Ну и соответственно в при следующем открытии уже считывать его с базы?

Нравится

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

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 отсутствует в текущем контексте", вот и пытаюсь понять, где взять и что ещё подключить

Ольга, а Terrasoft.Common.Json подключен?

подключила, не ругается...спасибо

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