1

Я новичок в ASP.NET MVC с использованием Kendo-UI и пытается загрузить данные из объекта в Grid. есть ли способ конкатенации двух полей в столбце?Объединить поля в сетке с использованием Kendo UI asp.net mvc

@(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."} 

ответ

1

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

@(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() 

)

1

Один из способов, вы можете добиться того, что вы пытаетесь сделать, это создать имя свойства в модели только с геттер конкатенации ПгвЬЫате и LastName, как этот

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

Затем вы можете связать имя с сеткой, как этот

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

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