I have defined a ClientTemplate which needs to display an employee and its roles as a list of items inside a single column.
Take following example:
Model person.cs:
public class Person
{
public Guid Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string[] Roles { get; set; }
}
The grid looks like this:
<%= Html.Telerik().Grid()
.Name("Employees")
.DataBinding(dataBinding => dataBinding.Ajax()
.Select("Employees", "Persons"))
.Columns(columns =>
{
columns.Bound(e => e.Id);
})
.DetailView(dv => dv.ClientTemplate(
"Name: <#= LastName #>, <#= FirstName #><br%>" +
"Roles: <ul%>" +
/* Person.Roles comes here: "<li%><#= Roles[i] #>"
"</li%></ul%>"
))
%>
Is there a way to have the roles op the employee displayed as an list inside the same column?
Yes there is!
You can embed executable code in your client template like this:
ClientTemplate("Roles: <ul>" +
"<# for (var i = 0; i < Roles.length; i++) {" +
"#> <li><#= Roles[i] #></li> <#" +
"} #>" +
"</ul>")
Many thanks to Atanas Korchev of the Telerik team for answering my question: ClientTemplate with collection inside.