Вычисляемое поле в модели Dextop C # - PullRequest
1 голос
/ 15 сентября 2011

Как лучше всего создать вычисляемое поле в модели Dextop C #, которое выполняет следующие действия:

Создает значение для поля FullName на основе полей FirstName и LastName, аналогично следующему в ExtJ:

function fullName(v, record){
return record.name.last + ', ' + record.name.first;
}

Ext.define('Contact', {
extend: 'Ext.data.Model',
fields: [
{name: 'fullname', convert: fullName},
{name: 'firstname', mapping: 'name.first'},
{name: 'lastname', mapping: 'name.last'}
]
});

Обновляет поле FullName в режиме реального времени, когда пользователь вводит поля формы FirstName или LastName в форме.

Код модели C #:

[DextopModel] 
[DextopGrid] 
[DextopForm] 
class MyModel 
{ 

[DextopModelId] 
[DextopGridColumn(width = 50, readOnly=true)]
public int Id { get; set; } 

[DextopFormField(anchor = "0", allowBlank = false, labelAlign = "top")]
[DextopGridColumn()]
public String FirstName { get; set; }

[DextopFormField(anchor = "0", allowBlank = false, labelAlign = "top")]
[DextopGridColumn()]
public String LastName { get; set; }

[DextopFormField(anchor="0", readOnly=true, labelAlign = "top")] 
[DextopGridColumn(flex=1)] 
public String FullName { get; set; }
}

1 Ответ

1 голос
/ 15 сентября 2011

Ответ очень прост.Dextop поддерживает вычисляемые столбцы на стороне сервера.Измените свойство FullName, как в примере ниже.

[DextopFormField(anchor="0", readOnly=true, labelAlign = "top")] 
[DextopGridColumn(flex=1)]    
public String FullName { get { return String.Format("{0} {1}", FirstName, LastName); } }   

В качестве альтернативы вы можете использовать атрибут DextopModelField для указания функции преобразования, которая будет сгенерирована в модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...