我正在研究一种医疗应用,其中网格需要显示ICD描述及其相关的HCC类别描述。 ICD和HCC类型如下所示:
public class ICD {
public String Code { get; set; }
public String Description { get; set; }
public HCC HCC { get; set; }
}
public class HCC {
public Int32 ID { get; set; }
public String Description { get; set; }
}
当我将Telerik MVC扩展网格绑定到ICD对象列表时,我就像这样设置列:
this.Html.Telerik().Grid(this.Model.ICDs)
.Name("ICDGrid")
.DataKeys(keys => keys.Add(icd => icd.Code))
.DataBinding(binding => {
binding.Ajax().Select(this.Model.AjaxSelectMethod);
binding.Ajax().Update(this.Model.AjaxUpdateMethod);
})
.Columns(columns => {
columns.Bound(icd => icd.ICDType.Name).Title("ICD 9/10");
columns.Bound(icd => icd.Code);
columns.Bound(icd => icd.Description);
columns.Bound(icd => icd.HCC.Description).Title("HCC Category")
columns.Command(commands => commands.Delete()).Title("Actions").Width(90);
})
.Editable(editing => editing.Mode(GridEditMode.InCell).DefaultDataItem(new ICD()))
.ToolBar(commands => {
commands.Insert();
commands.SubmitChanges();
})
.Sortable()
.Filterable()
.Pageable(paging => paging.PageSize(12))
.Render();
问题是ICD和HCC都有名为“Description”的属性,我无法控制它。有没有办法告诉Telerik在它生成的JavaScript中将它们称为不同的东西?像ICDDescription和HCCDescription这样的东西?
答案 0 :(得分:1)
目前,您无法为属性设置别名。您可以做的是创建一个ViewModel对象,其中属性的唯一名称。然后将网格绑定到ViewModel对象。这是一段代码:
public class ICDViewModel
{
public string Description
{
get;
set;
}
public string HCCDescription
{
get;
set;
}
// The rest of the properties of the original ICD class
}
然后,您需要更改Model.ICD的类型以使用ICDViewModel。您可以使用Select
扩展方法将ICD映射到ICDViewModel:
Model.ICDs = icds.Select(icd => new ICDViewModel
{
Description = icd.Description,
HCCDescription = icd.HCC.Description
/* set the rest of the ICD properties */
});