Объединение полей в сетке с использованием Kendo UI asp.net mvc

Я новичок в ASP.NET MVC, использую Kendo-UI и пытаюсь загрузить данные из сущности в сетку. есть ли способ объединить два поля в столбце?

@(Html.Kendo().Grid(Model)
.Name("Grid")
.Columns(columns =>
        {
            columns.Bound(p => p.employeeId).Title("ID");
            columns.Bound(p => p.firstname +" "+p.lastname).Title("Name");               
        })
        .Pageable()
        .Sortable()
        .Scrollable(scr=>scr.Height(430))
        .Filterable()
        .DataSource(datasource => datasource
        .Ajax()
        .PageSize(20)
        .ServerOperation(false)
)

Я пробовал это решение, но получаю сообщение об ошибке.

{"Bound columns require a field or property access expression."}

person garagumo    schedule 22.04.2015    source источник


Ответы (2)


Для этого вы можете использовать функцию шаблона строки. Найдите фрагмент ниже, а полную демонстрацию можно увидеть здесь.

@(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.EmployeeViewModel>()
.Name("grid")
.HtmlAttributes(new { style = "width: 750px;height:430px;" })
.Columns(columns =>
{
    columns.Template(e => { }).ClientTemplate(" ").Width(140).Title("Picture");
    columns.Bound(e => e.Title).Width(400).Title("Details");
    columns.Bound(e=> e.EmployeeID).Title("ID");
})
.ClientRowTemplate(
    "<tr data-uid='#: uid #'>" +
        "<td class='photo'>" +
           "<img src='" + Url.Content("~/Content/web/Employees/") +"#:data.EmployeeID#.jpg' alt='#: data.EmployeeID #' />" +
        "</td>" +
        "<td class='details'>" +
            "<span class='title'>#: Title #</span>" +
            "<span class='description'>Name : #: FirstName# #: LastName#</span>" +
            "<span class='description'>Country : #: Country# </span>" +
        "</td>" +
        "<td class='employeeID'>" +
            "#: EmployeeID #" +
        "</td>" +
     "</tr>"      
)

.Scrollable()

)

person Amal Dev    schedule 23.04.2015

Один из способов добиться того, что вы пытаетесь сделать, - это создать свойство Name в вашей модели только с помощью геттера, который объединяет имя и фамилию, например

public string Name { get { return string.Format("{0} {1}", firstname, lastname); } }

Затем вы можете привязать имя к сетке, например

columns.Bound(p => p.Name);

Тебе должно быть хорошо идти...

person saquib adil    schedule 07.10.2015