在Dextop c#模型中计算字段

本文关键字:计算 字段 模型 Dextop | 更新日期: 2023-09-27 18:08:34

在Dextop c#模型中创建计算字段的最佳方法是什么?

基于FirstName和LastName字段创建FullName字段的值,类似于ExtJs中的以下内容:

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或LastName字段时实时更新FullName字段。

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; }
}

在Dextop c#模型中计算字段

答案很简单。Dextop支持服务器端的计算列。修改FullName属性,如下面的示例所示。

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

作为一种选择,您可以使用DextopModelField属性来指定将在模型中生成的转换函数。