2011-09-15 6 views
1

무엇 다음 않는 Dextop C#을 모델에서 계산 된 필드를 만들 수있는 가장 좋은 방법입니다 :계산 된 필드

기반 전체 이름 필드의 값을 작성합니다 모두 이름 및 성 필드와 유사 실시간

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'} 
] 
}); 

업데이트 전체 이름 필드 사용자가 FIRSTNAME 또는 양식의 성 필드 중 하나에 입력 될 때 다음의 ExtJS에 다음.

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

대답은 매우 간단합니다. Dextop은 서버 측에서 계산 된 열을 지원합니다. 아래 예제 에서처럼 FullName 속성을 변경하십시오.

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

대신 DextopModelField 특성을 사용하여 모델에서 생성되는 변환 함수를 지정할 수 있습니다.

관련 문제