Как объединить более одного поля в столбце в 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);
        }
    };
Другие вопросы по тегам