Если я хочу присвоить значение по умолчанию для поля BO при его сохранении (в моем классе контроллера), как я могу добиться этого с помощью C# и xaf? Какие события актуальны?
Установка значения для поля в XPO
Ответы (2)
Вы можете использовать метод OnSaving
public class MyObject:XPObject
{
protected override void OnSaving()
{
if(this.Session.IsNewObject(this))
//SetDefaultValues
base.OnSaving();
}
}
person
George Vovos
schedule
08.06.2015
Спасибо большое. Как новичок, я не могу построить правильную логику. Как я могу получить правильный бизнес-объект, например, класс контактов? Нужно ли использовать IObjectSpace?
- person bilgestackoverflow; 08.06.2015
Ваш класс Contact наследуется от какого класса?
- person George Vovos; 08.06.2015
Я использую этот BusinessObject из другого модуля, поэтому у меня нет прямого доступа к его классу. Вот почему я буду обрабатывать это в классе контроллера
- person bilgestackoverflow; 08.06.2015
Он наследуется от класса XPBaseObject.
- person bilgestackoverflow; 08.06.2015
Если у вас нет доступа к этому классу, мое решение вам не подходит, покажите нам код в вашем контроллере.
- person George Vovos; 08.06.2015
Я решил проблему, добавив этот код в свои переопределенные методы сохранения:
private void ProcessSelectedObject(System.Collections.IList list)
{
foreach (object obj in list)
{
if (obj is Contact)
{
if (((Contact)obj).Sector == null)
{
((Contact)(obj)).Sector = "Default";
}
}
}
}
person
bilgestackoverflow
schedule
09.06.2015