Как объединить более одного поля в столбце в DevExpress MVC?
Я пытаюсь объединить более одного поля в столбце. Как два имени (первое и последнее) человека. Можно ли сделать на DevExpress MVC GridView без изменения в DB query
?
Вот мой код в частичном представлении -
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");
ТИА.
2 ответа
Решение
Вам нужно будет использовать 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();
});
});
Вот более надежное решение, которое не связывается с шаблонами:
// 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);
}
};