【问题标题】:How to combine more than one field in a column in DevExpress MVC?如何在 DevExpress MVC 的一列中组合多个字段?
【发布时间】:2013-11-13 20:22:56
【问题描述】:
我试图在一列中组合多个字段。就像一个人的两个名字(名字和姓氏)。是否可以在不更改 DB query 的情况下在 DevExpress MVC GridView 上进行操作?
这是我在部分视图中的代码 -
settings.Columns.Add("CompanyName");
// I need to combine NurseFirstName and NurseLastName into one column and name as NurseName
settings.Columns.Add("NurseFirstName");
settings.Columns.Add("NurseLastName");
TIA。
【问题讨论】:
标签:
c#
asp.net-mvc
devexpress
partial-views
【解决方案1】:
您需要使用 DataItemTemplate 将值组合到网格上的一个单元格中。比如:
settings.Columns.Add(c =>
{
c.Caption = "Nurse Name";
c.SetDataItemTemplateContent(t =>
{
Html.DevExpress().Label(
l => {
l.Text = String.Format("{0} {1}", DataBinder.Eval(t.DataItem, "NurseFirstName"), DataBinder.Eval(t.DataItem, "NurseLastName"));
}).Render();
});
});
【解决方案2】:
这是一个更强大的解决方案,不会与模板混淆:
// Add column
settings.Columns.Add(column =>
{
column.FieldName = "FullName";
column.Caption = "Full Name";
column.UnboundType = DevExpress.Data.UnboundColumnType.String;
});
// Add the combined values to the column
settings.CustomUnboundColumnData = (sender, e) =>
{
if (e.Column.FieldName == "FullName")
{
string fName = (string)e.GetListSourceFieldValue("FirstName");
string lName = (string)e.GetListSourceFieldValue("LastName");
e.Value = string.Format("{0} {1}", fName, lName);
}
};