Здравствуйте!
Такой вопрос:
Есть карточка редактирования раздела "Заявление на перс. дни", у неё есть деталь "Персональный день в заявлении", при добавлении или изменении значения в которой - требуется изменить значение числового поля Кол-во(дней) указать количество выбранных дней добавленных на деталь. (в атаче наглядно)
При изменении\добавлении с детали "Персональных дней" мы меняем на уровне обьекта Entity значение У заявления (тоесть у записи открытой карточки), и само собой разумеется - нужно установить соответствующее на текущей открытой карточке Заявления.
Для этого в карточке редактирования "Заявления на перс. день" после PageOnLoadCompleete я сохраняю в сессии Uid процесса так
var session = System.Web.HttpContext.Current.Session;
if (session["FreeDayStatementPageProcessUid"] == null) {
session.Add("FreeDayStatementPageProcessUid", Page.Process.InstanceUId);
}
В карточке редактирования детали "Персональные дни" на нажатие кнопки Ok я вытаскиваю из сессии id процесса и высылаю ему сообщение, и сообщение то приходит. Код:
var session = System.Web.HttpContext.Current.Session;
string freeDayStatementPageProcessUId = (string) session["FreeDayStatementPageProcessUid"];
if (!string.IsNullOrEmpty(freeDayStatementPageProcessUId ))
{
var process = UserConnection.ProcessEngine.FindProcessByUId(freeDayStatementPageProcessUId );
if (process != null)
{
process.ThrowEvent(process.InternalContext, "FreeDayInFreeDayStatementMessage");
}
}
return true;
;
И вот тут начинается самое интересное:
В процессе родительского окна (то есть Заявления) я пытаюсь установить значение полю. А поля нет т.к Page = null (в атаче картинка). При этом context и this это тот нужный процесс. Пробовал сохранять Page в параметр отдельно, и тоже Null. Также пытался передавать в ThrowEvent ранее сохраненный контекст Заявления - всё безрезультатно. До контролов не добраться.
Подскажите что я делаю не так?
Сразу скажу что реализация не конечная это своего рода проверка метода.